diff --git a/.gitignore b/.gitignore
index c109a3d6bdf35555aed248877cb6cf09acbfcdd1..610408ad3246925658fa258184c4fd56878f609b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -67,6 +67,7 @@ dkms.conf
#pyc files
*.pyc
.vscode
+.vscode-ctags
# Standalone sdk
standalone
@@ -76,4 +77,4 @@ phytium-standalone-sdk
#vim
-tags
\ No newline at end of file
+tags
diff --git a/Kconfig b/Kconfig
deleted file mode 100644
index f60c8d3c14a4fcaf93b9d0266faf0d15fa96f13c..0000000000000000000000000000000000000000
--- a/Kconfig
+++ /dev/null
@@ -1,36 +0,0 @@
-# entry of menuconfig
-# mainmenu "Phytium FreeRTOS SDK Configuration"
-
-STANDALONE_DIR := $(FREERTOS_STANDALONE)
-
-menu "Standalone Setting"
- config USE_FREERTOS
- bool "Building FreeRTOS Application"
- default y
- help
- Building FreeRTOS Application
-
- source "$(STANDALONE_DIR)/arch/Kconfig"
- source "$(STANDALONE_DIR)/soc/Kconfig"
- source "$(STANDALONE_DIR)/drivers/Kconfig"
- source "$(STANDALONE_DIR)/lib/Kconfig"
-endmenu
-
-menu "Building Option"
- source "$(STANDALONE_DIR)/common/Kconfig"
- source "$(FREERTOS_SDK_ROOT)/make/ld/Kconfig"
- source "$(FREERTOS_SDK_ROOT)/make/Kconfig"
-
-endmenu
-
-menu "Component Configuration"
- source "$(FREERTOS_SDK_ROOT)/drivers/Kconfig"
-endmenu
-
-menu "Third-Party Configuration"
- source "$(FREERTOS_SDK_ROOT)/third-party/Kconfig"
-endmenu
-
-menu "Kernel Configuration"
- source "$(FREERTOS_SDK_ROOT)/third-party/freertos/Kconfig"
-endmenu
\ No newline at end of file
diff --git a/README.md b/README.md
index 2c709025dfd8d927dfe825711a8053ff09d82a70..29b9a71d0b15b8676ab5c991fae822d6760aa5eb 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
# Phytium-FreeRTOS-SDK
+**v0.7.1** [ReleaseNote](./docs/ChangeLog.md)
+
## 1. 介绍
本项目发布了Phytium系列CPU的FreeRTOS源代码,参考例程以及配置构建工具
@@ -155,7 +157,7 @@ D2000 是一款面向桌面应用的高性能通用 8 核处理器。每 2 个
| QSPI (Nor Flash) | E2000
D2000
FT2000/4 | | qspi |
| SPI | E2000
PHYTIUMPI | | spi |
| TIMER & TACHO | E2000
PHYTIUMPI | | timer&tacho |
-| SDIO | E2000
PHYTIUMPI | | sd |
+| SDIF | E2000
PHYTIUMPI | | sd |
| PWM | E2000
PHYTIUMPI | | pwm |
| USB | E2000
PHYTIUMPI | | usb |
| WDT | FT2000/4
D2000
E2000
PHYTIUMPI| | wdt |
diff --git a/docs/ChangeLog.md b/docs/ChangeLog.md
index 3f592fd17d6c9ad6add425cd48b592c57770bfa3..8cf8db67aea3a082eb99a11a8a9dfefcf4f91dac 100644
--- a/docs/ChangeLog.md
+++ b/docs/ChangeLog.md
@@ -1,3 +1,85 @@
+# Phytium Standalone SDK 2023-11-09 ChangeLog
+
+Change Log since 2023-11-01
+
+## example
+
+- added extended frame test examples
+
+# Phytium Standalone SDK 2023-11-01 ChangeLog
+
+Change Log since 2023-11-01
+
+## example
+
+- change the media example for driver
+
+## driver
+
+- change the media driver for adapting the sdk
+
+## third-party
+
+- change the lvgl-port and delete the Kconfig
+
+# Phytium Standalone SDK 2023-11-01 ChangeLog
+
+Change Log since 2023-10-25
+
+## example
+
+- add new openamp example, support all app
+
+## third-party
+
+- remove lib,link openamp and libmetal v1.4.0 in standalone third-party
+
+# Phytium Standalone SDK 2023-10-25 ChangeLog
+
+Change Log since 2023-10-12
+
+## example
+
+- add network/wlan example, support station mode and ap mode
+
+## third-party
+
+- add fsl_wifi conponment
+
+# Phytium Standalone SDK 2023-10-12 ChangeLog
+
+Change Log since 2023-10-09
+
+## example
+
+- Add posix test example
+
+## third-party
+
+- Adapt to newlib c library in standalone sdk
+- Add Portable Operating System Interface (POSIX threading wrapper) for FreeRTOS
+
+# Phytium Standalone SDK 2023-10-12 ChangeLog
+
+Change Log since 2023-10-09
+
+## example
+
+- update sd example
+- update fatfs example
+
+## third-party
+
+- replace sdmmc with fsl_sdmmc
+
+# Phytium Standalone SDK 2023-10-09 v0.7.1 ChangeLog
+
+Change Log since 2023-10-07
+
+## example
+
+- adapt to new standalone sdk for gic restruct
+
# Phytium Standalone SDK 2023-09-26 ChangeLog
Change Log since 2023-09-21
diff --git a/docs/reference/driver/fcan_os.md b/docs/reference/driver/fcan_os.md
new file mode 100644
index 0000000000000000000000000000000000000000..4a1e69d933c8a895337bdbf119eecd933858f560
--- /dev/null
+++ b/docs/reference/driver/fcan_os.md
@@ -0,0 +1,354 @@
+# FCAN_OS 驱动程序
+
+## 1. 概述
+
+CAN 是控制器局域网络(Controller Area Network)的缩写,由以研发和生产汽车电子产品著称的德国BOSCH公司开发,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线之一。
+
+## 2. 功能
+
+CAN控制器驱动提供了CAN的控制访问方法,
+- 初始化CAN控制器
+- 以中断方式发送/接收数据例程
+- 以任务方式发送/接收数据例程
+- can id滤波测试例程
+
+驱动相关的源文件包括,
+```
+.
+├── fcan_os.c
+└── fcan_os.h
+```
+
+## 3. 配置方法
+
+以下部分将指导您完成 fcan_os 驱动的软件配置:
+
+- 初始化CAN控制器
+- 设置CAN的中断处理函数,包括收发中断
+
+## 4 应用示例
+
+### [can收发数据](../../../example/peripheral/can/can/)
+
+## 5. API参考
+
+### 5.1. 用户数据结构
+
+- fcan_os控制操作
+```c
+enum
+{
+ FREERTOS_CAN_CTRL_ENABLE = 0, /* enable can */
+ FREERTOS_CAN_CTRL_DISABLE = 1, /* disable can */
+ FREERTOS_CAN_CTRL_BAUDRATE_SET, /* set can baudrate */
+ FREERTOS_CAN_CTRL_STATUS_GET, /* get can status */
+ FREERTOS_CAN_CTRL_ID_MASK_SET, /* set can receive id mask */
+ FREERTOS_CAN_CTRL_ID_MASK_ENABLE, /* enable can receive id mask */
+ FREERTOS_CAN_CTRL_INTR_SET, /* set can interrupt handler */
+ FREERTOS_CAN_CTRL_INTR_ENABLE, /* enable can interrupt */
+ FREERTOS_CAN_CTRL_FD_ENABLE, /* set can fd enable */
+ FREERTOS_CAN_CTRL_MODE_SET, /* set can transmit mode */
+ FREERTOS_CAN_CTRL_NUM
+};
+```
+
+- FreeRTOS中can消息队列
+```c
+typedef struct
+{
+ u32 count;
+ FFreeRTOSCan *os_can_p;
+} FCanQueueData;
+```
+
+- fcan_os控制数据,FCanCtrl主要是fcan控制数据,xSemaphoreHandle是信号量句柄
+```c
+typedef struct
+{
+ FCanCtrl can_ctrl; /* can object */
+ xSemaphoreHandle can_semaphore; /* can semaphore for resource sharing */
+} FFreeRTOSCan;
+```
+
+- fcan控制数据
+```c
+typedef struct
+{
+ FCanConfig config;
+ u32 is_ready; /* Device is initialized and ready */
+ boolean use_canfd; /* if use canfd function */
+
+ FCanIntrEventConfig intr_event[FCAN_INTR_EVENT_NUM];/* event handler and parameters for interrupt */
+} FCanCtrl;
+```
+
+- fcan配置数据,FCanConfig主要是can控制器id、基地址和中断号,FCanIntrEventConfig主要包括中断处理函数
+```c
+typedef struct
+{
+ u32 instance_id; /* Id of device */
+ uintptr base_address; /* Can base Address */
+ u32 irq_num; /* interrupt number */
+ u32 irq_prority; /* interrupt priority*/
+}FCanConfig;
+```
+
+- fcan波特率配置
+```c
+typedef struct
+{
+ FCanSegmentType segment;
+ boolean auto_calc; /* if auto calculate baudrate parameters */
+ u32 baudrate; /* baudrate */
+ u32 sample_point; /* sample point */
+ u32 prop_seg; /* Propagation segment in TQs */
+ u32 phase_seg1; /* Phase buffer segment 1 in TQs */
+ u32 phase_seg2; /* Phase buffer segment 2 in TQs */
+ u32 sjw; /* Synchronisation jump width in TQs */
+ u32 brp; /* Baudrate prescaler */
+}FCanBaudrateConfig;
+```
+
+- fcan报文
+```c
+typedef struct
+{
+ u32 canid;
+ u8 candlc;
+ u8 flags; /* additional flags for CAN FD */
+ u8 data[FCAN_DATA_LENGTH] __attribute__((aligned(8)));
+}FCanFrame;
+```
+
+- fcan中断事件类型
+```c
+typedef enum
+{
+ FCAN_INTR_EVENT_SEND = 0, /* Handler type for frame sending interrupt */
+ FCAN_INTR_EVENT_RECV = 1, /* Handler type for frame reception interrupt */
+ FCAN_INTR_EVENT_ERROR, /* Handler type for error interrupt */
+ FCAN_INTR_EVENT_NUM
+} FCanIntrEventType;
+```
+
+### 5.2 错误码定义
+- FCAN_SUCCESS 执行成功
+- FCAN_NOT_READY 驱动未初始化
+- FCAN_FAILURE 执行失败
+- FCAN_INVAL_PARAM 参数无效
+
+### 5.3. 用户API接口
+
+#### FFreeRTOSCanInit
+- 初始化FreeRTOS的can实例
+```c
+FFreeRTOSCan *FFreeRTOSCanInit(u32 instance_id);
+```
+
+Note:
+- 获取默认配置参数,包括基地址、中断号等。创建互斥量
+
+Input:
+- {u32} instance_id,控制器id号
+
+Return:
+- {FFreeRTOSCan *} 返回can实例指针
+
+#### FFreeRTOSCanDeinit
+- 去初始化can实例
+```c
+FError FFreeRTOSCanDeinit(FFreeRTOSCan *os_can_p)
+```
+
+Note:
+- 停止can、去初始化can、删除互斥量
+
+Input:
+- {FFreeRTOSCan} *os_can_p,can实例指针
+
+Return:
+- {FError} 驱动错误码信息,FCAN_SUCCESS表示成功,其它返回值表示失败
+
+#### FFreeRTOSCanControl
+- 控制FreeRTOS中的can实例
+```c
+FError FFreeRTOSCanControl(FFreeRTOSCan *os_can_p, int cmd, void *arg)
+```
+
+Note:
+- 使能can、禁用can、设置can波特率、获取can状态、设置id掩码、使能id掩码、设置can中断句柄、使能can中断、使能canfd、设置can传输模式
+
+Input:
+- {FFreeRTOSCan} *os_can_p,can实例指针
+- {int} cmd,控制命令
+- {void} *arg,控制命令参数
+
+Return:
+- {FError} 驱动错误码信息,FCAN_SUCCESS表示成功,其它返回值表示失败
+
+#### FFreeRTOSCanSend
+- FreeRTOS中can消息发送函数
+```c
+FError FFreeRTOSCanSend(FFreeRTOSCan *os_can_p, FCanFrame *frame_p)
+```
+
+Note:
+- 通过can实例发送can消息
+
+Input:
+- {FFreeRTOSCan} *os_can_p,can实例指针
+- {FCanFrame} *frame_p,can数据
+
+Return:
+- {FError} 驱动错误码信息,FCAN_SUCCESS表示成功,其它返回值表示失败
+
+#### FFreeRTOSCanRecv
+- FreeRTOS中can消息接收函数
+```c
+FError FFreeRTOSCanRecv(FFreeRTOSCan *os_can_p, FCanFrame *frame_p)
+```
+
+Note:
+- 通过can实例接收can消息
+
+Input:
+- {FFreeRTOSCan} *os_can_p,can实例指针
+- {FCanFrame} *frame_p,can数据
+
+Return:
+- {FError} 驱动错误码信息,FCAN_SUCCESS表示成功,其它返回值表示失败
+
+#### FCanLookupConfig
+- 获取fcan控制器默认配置
+```c
+const FCanConfig *FCanLookupConfig(u32 instance_id);
+```
+
+Note:
+- 获取默认配置参数,包括基地址、中断号等
+
+Input:
+- {u32} instance_id,控制器id号
+
+Return:
+- {const FCanConfig *} fcan默认配置,返回NULL如果找不到默认配置
+
+#### FCanCfgInitialize
+- 初始化fcan控制器, 使之可以使用
+```c
+FError FCanCfgInitialize(FCanCtrl *instance_p, const FCanConfig *input_config_p);
+```
+
+Note:
+- 输入配置通过FCanLookupConfig获取,用户按照需要修改后传入此函数
+
+Input:
+- {FCanCtrl} *instance_p fcan驱动控制数据
+- {FCanConfig} *input_config_p fcan用户输入配置
+
+Return:
+- {FError} 驱动初始化的错误码信息,FCAN_SUCCESS 表示初始化成功,其它返回值表示初始化失败
+
+#### FCanSend
+- 发送can数据
+```c
+FError FCanSend(FCanCtrl *instance_p, FCanFrame *frame_p);
+```
+
+Note:
+- 指定can控制器发送can数据
+
+Input:
+- {FCanCtrl} *instance_p,fcan驱动控制数据
+- {FCanFrame} *frame_p,can数据
+
+Return:
+- {FError} 驱动初始化的错误码信息,FCAN_SUCCESS 表示初始化成功,其它返回值表示初始化失败
+
+#### FCanRecv
+- 接收can数据
+```c
+FError FCanRecv(FCanCtrl *instance_p, FCanFrame *frame_p);
+```
+
+Note:
+- 指定can控制器接收can数据
+
+Input:
+- {FCanCtrl} *instance_p,fcan驱动控制数据
+- {FCanFrame} *frame_p,can数据
+
+Return:
+- {FError} 驱动初始化的错误码信息,FCAN_SUCCESS 表示初始化成功,其它返回值表示初始化失败
+
+#### FCanRegisterInterruptHandler
+- 注册can中断事件函数
+```c
+void FCanRegisterInterruptHandler(FCanCtrl *instance_p, FCanIntrEventConfig *intr_event_p);
+```
+
+Note:
+- 无
+
+Input:
+- {FCanCtrl} *instance_p,fcan驱动控制数据
+- {FCanIntrEventConfig} *intr_event_p,中断事件类型,回调函数,回调函数参数
+
+Return:
+- 无
+
+#### FCanIntrHandler
+- can中断处理函数入口
+```c
+void FCanIntrHandler(s32 vector, void *args);
+```
+
+Note:
+- 根据中断类型,设置对应的回调函数和参数传入
+
+Input:
+- {s32} vector
+- {void} *param, 输入参数,指向fcan驱动控制数据
+
+Return:
+- 无
+
+#### FCanIdMaskFilterSet
+- can id过滤设置
+```c
+FError FCanIdMaskFilterSet(FCanCtrl *instance_p, FCanIdMaskConfig *id_mask_p);
+```
+
+Note:
+- 设置需要过滤的 can_id 的位以及对应的 can_maskid 和 can_mask
+- 将 can_id 与过滤器中的 can_maskid 进行按位与运算
+- 结果为1的位则忽略此位与接收帧对应位的匹配情况
+
+Input:
+- {FCanCtrl} *instance_p, fcan驱动控制数据
+- {FCanIdMaskConfig} *id_mask_p, 过滤寄存器序号,可接收帧id,可接收帧id掩码
+
+Return:
+- {FError} 驱动初始化的错误码信息,FCAN_SUCCESS 表示初始化成功,其它返回值表示初始化失败
+
+#### FCanCalcBittiming
+- 根据目标波特率和采样点要求,通过计算得到最佳的定时器参数配置
+```c
+static FError FCanCalcBittiming(FCanBaudrateConfig *bt_p, u32 target_baudrate, u32 target_sample_point, FCanSegmentType target_segment);
+```
+
+Note:
+- 根据目标波特率选择合适的标准采样点
+- 通过遍历不同的 tseg(段总和值),计算波特率预分频器(brp)和波特率的误差,并根据误差找出最佳的 tseg 和 brp 值
+- 计算出最佳的 tseg 值后,更新采样点值
+- 对 sjw(同步跳转宽度)进行检查,并根据 tseg2 的值进行限制
+- 存储最终计算得到的参数值到 bt 结构体中
+
+Input:
+- {FCanBaudrateConfig} *bt_p, 波特率计算参数
+- {u32} target_baudrate, 目标波特率
+- {u32} target_sample_point, 目标采样点
+- {FCanSegmentType} target_segment, 目标段类型
+
+Return:
+- {FError} 驱动初始化的错误码信息,FCAN_SUCCESS 表示初始化成功,其它返回值表示初始化失败
\ No newline at end of file
diff --git a/docs/reference/usr/install_linux_aarch64.md b/docs/reference/usr/install_linux_aarch64.md
index abcf1a98f6f503432a4ae7e6765127ae0f7b8d8a..35a527d73b2aa0b2c687f14b07e1da36a9a087b3 100644
--- a/docs/reference/usr/install_linux_aarch64.md
+++ b/docs/reference/usr/install_linux_aarch64.md
@@ -55,15 +55,12 @@ cd ./phytium-free-rtos-sdk
- 打印下列环境变量,观察各变量是否存在,指向的目录是否正确
> `PHYTIUM_DEV_PATH`指向DEV目录
-> `FREERTOS_SDK_ROOT`指向SDK源文件目录
-
> `AARCH32_CROSS_PATH`指向32位交叉编译链目录
> `AARCH64_CROSS_PATH`指向64位交叉编译链目录
```
echo $PHYTIUM_DEV_PATH
-echo $FREERTOS_SDK_ROOT
echo $AARCH32_CROSS_PATH
echo $AARCH64_CROSS_PATH
```
diff --git a/docs/reference/usr/install_linux_x86_64.md b/docs/reference/usr/install_linux_x86_64.md
index bf9dbff11d11dbb471f748009ffbb6e0d99260d8..f05b4b573be23e887d6223a7e08687909841a117 100644
--- a/docs/reference/usr/install_linux_x86_64.md
+++ b/docs/reference/usr/install_linux_x86_64.md
@@ -56,14 +56,12 @@ cd ./phytium-free-rtos-sdk
- 打印下列环境变量,观察各变量是否存在,指向的目录是否正确
> `PHYTIUM_DEV_PATH`指向DEV目录
-> `FREERTOS_SDK_ROOT`指向SDK源文件目录
-
> `AARCH32_CROSS_PATH`指向32位交叉编译链目录
> `AARCH64_CROSS_PATH`指向64位交叉编译链目录
```
-echo $PHYTIUM_DEV_PATH $FREERTOS_SDK_ROOT $AARCH32_CROSS_PATH $AARCH64_CROSS_PATH
+echo $PHYTIUM_DEV_PATH $AARCH32_CROSS_PATH $AARCH64_CROSS_PATH
```

diff --git a/docs/reference/usr/install_windows.md b/docs/reference/usr/install_windows.md
index 5dbbb72df9e120d21eba6dd8f73702e502cb2b76..d18ee5c418f29ee670e1e1c9e757dd0d7d7a0ff7 100644
--- a/docs/reference/usr/install_windows.md
+++ b/docs/reference/usr/install_windows.md
@@ -59,14 +59,12 @@ cd ./phytium-free-rtos-sdk
- 打印下列环境变量,观察各变量是否存在,指向的目录是否正确
> `PHYTIUM_DEV_PATH`指向DEV目录
-> `FREERTOS_SDK_ROOT`指向SDK源文件目录
-
> `AARCH32_CROSS_PATH`指向32位交叉编译链目录
> `AARCH64_CROSS_PATH`指向64位交叉编译链目录
```
-echo $PHYTIUM_DEV_PATH $FREERTOS_SDK_ROOT $AARCH32_CROSS_PATH $AARCH64_CROSS_PATH
+echo $PHYTIUM_DEV_PATH $AARCH32_CROSS_PATH $AARCH64_CROSS_PATH
```
- 环境变量打印正确无误,表示**安装成功**
diff --git a/drivers/can/fcan_os.c b/drivers/can/fcan_os.c
index ef068d2117a97234949d6ce4df3fde29e1326d97..4ef3cfbc403b8e17735a101dd424b2e074b40d96 100644
--- a/drivers/can/fcan_os.c
+++ b/drivers/can/fcan_os.c
@@ -152,7 +152,8 @@ FError FFreeRTOSCanControl(FFreeRTOSCan *os_can_p, int cmd, void *arg)
case FREERTOS_CAN_CTRL_FD_ENABLE:
use_canfd = (boolean)(uintptr)arg;
FCanFdEnable(&os_can_p->can_ctrl, use_canfd);
- break;
+ break;
+
default:
FCAN_ERROR("Invalid cmd.");
ret = FCAN_INVAL_PARAM;
diff --git a/drivers/media/fmedia_os.c b/drivers/media/fmedia_os.c
index c8a53b8603b525032a021f8c6cd06af36643fc11..8b801997febc0622b2d93337c864103c19dd2909 100644
--- a/drivers/media/fmedia_os.c
+++ b/drivers/media/fmedia_os.c
@@ -41,7 +41,6 @@
#define FMEDIA_INFO(format, ...) FT_DEBUG_PRINT_I(FMEDIA_DEBUG_TAG, format, ##__VA_ARGS__)
#define FMEDIA_DEBUG(format, ...) FT_DEBUG_PRINT_D(FMEDIA_DEBUG_TAG, format, ##__VA_ARGS__)
-static FFreeRTOSMedia os_media;
/************************** Function Prototypes ******************************/
/**
@@ -55,26 +54,18 @@ static FFreeRTOSMedia os_media;
* @param {u32} refresh_rate is the refresh rate of screen
* @return err code information, 0 indicates success,others indicates failed
*/
-FFreeRTOSMedia *FFreeRTOSMediaHwInit(u32 channel, u32 width, u32 height, u32 multi_mode,u32 color_depth,u32 refresh_rate)
+FFreeRTOSMedia *FFreeRTOSMediaHwInit(u32 channel,FFreeRTOSMedia *instance)
{
FError ret = FT_SUCCESS;
- FFreeRTOSMedia *instance_p = &os_media;
- u32 mode_id = FDcResToModeNum(width, height);
+ u32 index;
+ FDcDpCfgInitialize(&instance->dcdp_ctrl);
- FDcDpCfgInitialize(&instance_p->dcdp_ctrl);
- ret = FDcDpGetDefaultConfig(&instance_p->dcdp_ctrl);
- if (ret != FMEDIA_DP_SUCCESS)
+ for (index = 0; index < FDCDP_INSTANCE_NUM; index ++)
{
- FMEDIA_ERROR("Get default failed");
- goto err_exit;
+ instance->dcdp_ctrl.dc_instance_p[index].config = *FDcLookupConfig(index);
+ instance->dcdp_ctrl.dp_instance_p[index].config = *FDpLookupConfig(index);
}
- ret = FDcDpSetBasicParam(&instance_p->dcdp_ctrl, width, height, color_depth, refresh_rate);
- if (ret != FMEDIA_DP_SUCCESS)
- {
- FMEDIA_ERROR("Set basic parameters failed");
- goto err_exit;
- }
- ret = FDcDpInitial(&instance_p->dcdp_ctrl, channel,width, height , mode_id, multi_mode);
+ ret = FDcDpInitialize(&instance->dcdp_ctrl, channel);
if (ret != FMEDIA_DP_SUCCESS)
{
FMEDIA_ERROR("DcDp initial failed");
@@ -82,48 +73,6 @@ FFreeRTOSMedia *FFreeRTOSMediaHwInit(u32 channel, u32 width, u32 height, u32 mul
}
err_exit:
- return (FT_SUCCESS == ret) ? instance_p : NULL; /* exit with NULL if failed */
+ return (FT_SUCCESS == ret) ? instance : NULL; /* exit with NULL if failed */
}
-
-/**
- * @name: FFreeRTOSMediaHpdReInit
- * @msg: hpd init the media,dc and dp
- * @param {u32} channel is the dc channel
- * @param {u32} width is the width
- * @param {u32} height is the height
- * @param {u32} multi_mode is multi display mode,0:clone,1:hor,2:ver
- * @param {u32} color_depth is the color depth
- * @param {u32} refresh_rate is the refresh rate of screen
- * @return err code information, 0 indicates success,others indicates failed
- */
-FError FFreeRTOSMediaHpdReInit(u32 channel,u32 width, u32 height,u32 multi_mode,u32 color_depth,u32 refresh_rate)
-{
- FError ret = FT_SUCCESS;
- FFreeRTOSMedia *instance_p = &os_media;
-
- if (FDpChannelRegRead(instance_p->dcdp_ctrl.dp_instance_p[channel].config.dp_channe_base_addr, FDPTX_LINK_BW_SET) != 0)
- {
- FMEDIA_DEBUG("DP have been setted, do not need reconnected\r\n");
- instance_p->dcdp_ctrl.connect_flg[channel] = 0;
- }
- else
- {
- FMEDIA_DEBUG(" Reconnected\r\n");
- FDcDpCfgInitialize(&instance_p->dcdp_ctrl);
- ret = FDcDpGetDefaultConfig(&instance_p->dcdp_ctrl);
- if (ret != FMEDIA_DP_SUCCESS)
- {
- FMEDIA_ERROR("Get default failed");
- }
- ret = FDcDpSetBasicParam(&instance_p->dcdp_ctrl, width, height, color_depth, refresh_rate);
- if (ret != FMEDIA_DP_SUCCESS)
- {
- FMEDIA_ERROR("Set basic parameters failed");
- }
- ret = FDcDpInitial(&instance_p->dcdp_ctrl, channel, width, height, color_depth, multi_mode);
- instance_p->dcdp_ctrl.connect_flg[channel] = 0;
- }
-
- return ret;
-}
diff --git a/drivers/media/fmedia_os.h b/drivers/media/fmedia_os.h
index 07738b13f5b56708b889394bb4d79ea5f97b3d8b..fa1e81654e2f929cbb7da31f86c26d35241a48ea 100644
--- a/drivers/media/fmedia_os.h
+++ b/drivers/media/fmedia_os.h
@@ -48,10 +48,8 @@ typedef struct
} FFreeRTOSMedia;
/*init the media and return the meidia instance*/
-FFreeRTOSMedia *FFreeRTOSMediaHwInit(u32 channel, u32 width, u32 height, u32 multi_mode,u32 color_depth,u32 refresh_rate);
+FFreeRTOSMedia *FFreeRTOSMediaHwInit(u32 channel,FFreeRTOSMedia *instance);
-/*hpd event to check and reinit the media*/
-FError FFreeRTOSMediaHpdReInit(u32 channel, u32 width, u32 height, u32 multi_mode,u32 color_depth,u32 refresh_rate);
#ifdef __cplusplus
}
diff --git a/example/freertos_feature/eventgroup/Kconfig b/example/freertos_feature/eventgroup/Kconfig
index b2f5477fdf08aaeebc2894ed1baceec5ec1dd516..c440b23922a78b8b29a1e9ca36cac7804c066f1a 100644
--- a/example/freertos_feature/eventgroup/Kconfig
+++ b/example/freertos_feature/eventgroup/Kconfig
@@ -3,7 +3,7 @@
# see tools/kconfiglib/kconfig-language.txt.
#
-mainmenu "Phytium Freertos Configuration"
+mainmenu "Phytium FreeRTOS Configuration"
source "$(SDK_DIR)/../freertos.kconfig"
diff --git a/example/freertos_feature/eventgroup/configs/d2000_aarch32_test_eventgroup.config b/example/freertos_feature/eventgroup/configs/d2000_aarch32_test_eventgroup.config
index 2ece0d58823dde4d0b6299222d6c52d14d89fa5e..808e8250a7291d007624ca74d96d5d905130b446 100644
--- a/example/freertos_feature/eventgroup/configs/d2000_aarch32_test_eventgroup.config
+++ b/example/freertos_feature/eventgroup/configs/d2000_aarch32_test_eventgroup.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -179,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -308,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -319,10 +320,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -342,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/eventgroup/configs/d2000_aarch64_test_eventgroup.config b/example/freertos_feature/eventgroup/configs/d2000_aarch64_test_eventgroup.config
index 732ec7c6ef34709abfaa245cfa83b602e33e1ab1..769875586a074de3c1681284f3fce502d2d72a2b 100644
--- a/example/freertos_feature/eventgroup/configs/d2000_aarch64_test_eventgroup.config
+++ b/example/freertos_feature/eventgroup/configs/d2000_aarch64_test_eventgroup.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -142,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -181,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -306,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -317,10 +310,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -340,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/eventgroup/configs/e2000d_aarch32_demo_eventgroup.config b/example/freertos_feature/eventgroup/configs/e2000d_aarch32_demo_eventgroup.config
index c346ce74ee59ee1220630d8ec9dea3166b6dafcd..ca046abca587e6eb478d40f68d46aa73e86021ff 100644
--- a/example/freertos_feature/eventgroup/configs/e2000d_aarch32_demo_eventgroup.config
+++ b/example/freertos_feature/eventgroup/configs/e2000d_aarch32_demo_eventgroup.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +153,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,7 +323,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -332,10 +333,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -355,4 +358,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/eventgroup/configs/e2000d_aarch64_demo_eventgroup.config b/example/freertos_feature/eventgroup/configs/e2000d_aarch64_demo_eventgroup.config
index f7dee3326669e1cdcacc334f253979f78ec16bcf..d066e72f5827f1f14c88a588bcd7ff0e45efb88e 100644
--- a/example/freertos_feature/eventgroup/configs/e2000d_aarch64_demo_eventgroup.config
+++ b/example/freertos_feature/eventgroup/configs/e2000d_aarch64_demo_eventgroup.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +147,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +323,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +348,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/eventgroup/configs/e2000q_aarch32_demo_eventgroup.config b/example/freertos_feature/eventgroup/configs/e2000q_aarch32_demo_eventgroup.config
index 20fa94164dec68a92eb25705b7c79ac5574854e8..e2f31e1019ff064ddad957a994aceaf6a0d90cc4 100644
--- a/example/freertos_feature/eventgroup/configs/e2000q_aarch32_demo_eventgroup.config
+++ b/example/freertos_feature/eventgroup/configs/e2000q_aarch32_demo_eventgroup.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -152,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -191,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +322,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -331,10 +332,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -354,4 +357,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/eventgroup/configs/e2000q_aarch64_demo_eventgroup.config b/example/freertos_feature/eventgroup/configs/e2000q_aarch64_demo_eventgroup.config
index 7d8ac72bbd4482acb74eb652bb444075eb419448..a10ca2e001e5ca3d16fbfc152dec84390e9d0ec4 100644
--- a/example/freertos_feature/eventgroup/configs/e2000q_aarch64_demo_eventgroup.config
+++ b/example/freertos_feature/eventgroup/configs/e2000q_aarch64_demo_eventgroup.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +146,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +186,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -318,7 +312,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -329,10 +322,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -352,4 +347,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/eventgroup/configs/ft2004_aarch32_dsk_eventgroup.config b/example/freertos_feature/eventgroup/configs/ft2004_aarch32_dsk_eventgroup.config
index ceb93dbe6e7bc3c63c9affe0b585b915155ce0f2..d373649c31c4359603b322b5519d890850bfd196 100644
--- a/example/freertos_feature/eventgroup/configs/ft2004_aarch32_dsk_eventgroup.config
+++ b/example/freertos_feature/eventgroup/configs/ft2004_aarch32_dsk_eventgroup.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -179,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -308,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -319,10 +320,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -342,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/eventgroup/configs/ft2004_aarch64_dsk_eventgroup.config b/example/freertos_feature/eventgroup/configs/ft2004_aarch64_dsk_eventgroup.config
index 110538f71c07e0d6589b12e7a0208ecb142a746b..79e9577c5b3084956ba95b2c3fac53b6313e7828 100644
--- a/example/freertos_feature/eventgroup/configs/ft2004_aarch64_dsk_eventgroup.config
+++ b/example/freertos_feature/eventgroup/configs/ft2004_aarch64_dsk_eventgroup.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -142,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -181,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -306,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -317,10 +310,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -340,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/eventgroup/configs/phytiumpi_aarch32_firefly_eventgroup.config b/example/freertos_feature/eventgroup/configs/phytiumpi_aarch32_firefly_eventgroup.config
index a89882b5a26aac3f1c39385e9a17b40b2a39773e..a7fb4d82ee6faf28df983aa47b4a74ff67d5e3d5 100644
--- a/example/freertos_feature/eventgroup/configs/phytiumpi_aarch32_firefly_eventgroup.config
+++ b/example/freertos_feature/eventgroup/configs/phytiumpi_aarch32_firefly_eventgroup.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -107,8 +109,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -136,6 +136,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -175,7 +176,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -304,7 +306,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -315,10 +316,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -338,4 +341,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/eventgroup/configs/phytiumpi_aarch64_firefly_eventgroup.config b/example/freertos_feature/eventgroup/configs/phytiumpi_aarch64_firefly_eventgroup.config
index f01bf0a7802f3bb8c6542ee322dd5b520c0dfe72..271ac4d3ac40c39f1061c0a576a5364d5278e0f3 100644
--- a/example/freertos_feature/eventgroup/configs/phytiumpi_aarch64_firefly_eventgroup.config
+++ b/example/freertos_feature/eventgroup/configs/phytiumpi_aarch64_firefly_eventgroup.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -109,8 +103,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -138,6 +130,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -177,7 +170,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -302,7 +296,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -313,10 +306,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -336,4 +331,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/eventgroup/sdkconfig b/example/freertos_feature/eventgroup/sdkconfig
index f01bf0a7802f3bb8c6542ee322dd5b520c0dfe72..271ac4d3ac40c39f1061c0a576a5364d5278e0f3 100644
--- a/example/freertos_feature/eventgroup/sdkconfig
+++ b/example/freertos_feature/eventgroup/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -109,8 +103,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -138,6 +130,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -177,7 +170,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -302,7 +296,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -313,10 +306,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -336,4 +331,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/eventgroup/sdkconfig.h b/example/freertos_feature/eventgroup/sdkconfig.h
index c834ae90e2964338dcb56b569042919dec0cd5c8..b5f5689c2ff406145bad03db1b435cf33765ab9f 100644
--- a/example/freertos_feature/eventgroup/sdkconfig.h
+++ b/example/freertos_feature/eventgroup/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -100,8 +96,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -127,6 +121,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -162,7 +157,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -266,7 +262,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -277,9 +272,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -299,6 +296,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/freertos_feature/interrupt/Kconfig b/example/freertos_feature/interrupt/Kconfig
index 5f1d79a1f3383e8d567c161ce58827e24d7aed12..c12dca42842e046755eacf5e16cf3e97bf13835b 100644
--- a/example/freertos_feature/interrupt/Kconfig
+++ b/example/freertos_feature/interrupt/Kconfig
@@ -4,7 +4,7 @@
#
-mainmenu "Phytium Freertos Configuration"
+mainmenu "Phytium FreeRTOS Configuration"
source "$(SDK_DIR)/../freertos.kconfig"
diff --git a/example/freertos_feature/interrupt/configs/d2000_aarch32_test_interrupt.config b/example/freertos_feature/interrupt/configs/d2000_aarch32_test_interrupt.config
index 4e83e17d6b53256772d1f8041b4b48a61d478594..dc71cc8a6a2b2c068223d821f2762e90a4ceb066 100644
--- a/example/freertos_feature/interrupt/configs/d2000_aarch32_test_interrupt.config
+++ b/example/freertos_feature/interrupt/configs/d2000_aarch32_test_interrupt.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -179,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -308,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -319,10 +320,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -342,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/interrupt/configs/d2000_aarch64_test_interrupt.config b/example/freertos_feature/interrupt/configs/d2000_aarch64_test_interrupt.config
index 8df72f240dca76202716a6e267cf23abbb54bd17..c1919884113ea8b7e6b82ab633dd8073eecebdef 100644
--- a/example/freertos_feature/interrupt/configs/d2000_aarch64_test_interrupt.config
+++ b/example/freertos_feature/interrupt/configs/d2000_aarch64_test_interrupt.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -142,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -181,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -306,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -317,10 +310,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -340,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/interrupt/configs/e2000d_aarch32_demo_interrupt.config b/example/freertos_feature/interrupt/configs/e2000d_aarch32_demo_interrupt.config
index b77a8058c23454ebcf16992709f6f0d96ca99393..46b48805b0e13eacfac0043e57564509b985b106 100644
--- a/example/freertos_feature/interrupt/configs/e2000d_aarch32_demo_interrupt.config
+++ b/example/freertos_feature/interrupt/configs/e2000d_aarch32_demo_interrupt.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +153,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,7 +323,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -332,10 +333,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -355,4 +358,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/interrupt/configs/e2000d_aarch64_demo_interrupt.config b/example/freertos_feature/interrupt/configs/e2000d_aarch64_demo_interrupt.config
index 4fd223a135f54589229f9e52e1fa9cd84e8b8477..ca6ffc737b843fa67de343546ca5d7f9a9ee9564 100644
--- a/example/freertos_feature/interrupt/configs/e2000d_aarch64_demo_interrupt.config
+++ b/example/freertos_feature/interrupt/configs/e2000d_aarch64_demo_interrupt.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +147,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +323,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +348,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/interrupt/configs/e2000q_aarch32_demo_interrupt.config b/example/freertos_feature/interrupt/configs/e2000q_aarch32_demo_interrupt.config
index c85279b3fd5e21f98842afa21943cae85af9d5b0..2e6a9d7839a53e51ef2a49f9195ca18db2ac9be5 100644
--- a/example/freertos_feature/interrupt/configs/e2000q_aarch32_demo_interrupt.config
+++ b/example/freertos_feature/interrupt/configs/e2000q_aarch32_demo_interrupt.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -152,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -191,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +322,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -331,10 +332,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -354,4 +357,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/interrupt/configs/e2000q_aarch64_demo_interrupt.config b/example/freertos_feature/interrupt/configs/e2000q_aarch64_demo_interrupt.config
index 9d26b9acd865806c8b327d02b69d9a94dc07adb9..b236a68579e1497298f6e356bb24b1a801a5abfa 100644
--- a/example/freertos_feature/interrupt/configs/e2000q_aarch64_demo_interrupt.config
+++ b/example/freertos_feature/interrupt/configs/e2000q_aarch64_demo_interrupt.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +146,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +186,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -318,7 +312,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -329,10 +322,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -352,4 +347,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/interrupt/configs/ft2004_aarch32_dsk_interrupt.config b/example/freertos_feature/interrupt/configs/ft2004_aarch32_dsk_interrupt.config
index 2c3d1be6cde9fa7ec5d1d350c9494be1289df5f1..6cdf95b56024f3450bf9be9261f86dbbcaf91b30 100644
--- a/example/freertos_feature/interrupt/configs/ft2004_aarch32_dsk_interrupt.config
+++ b/example/freertos_feature/interrupt/configs/ft2004_aarch32_dsk_interrupt.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -179,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -308,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -319,10 +320,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -342,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/interrupt/configs/ft2004_aarch64_dsk_interrupt.config b/example/freertos_feature/interrupt/configs/ft2004_aarch64_dsk_interrupt.config
index ebdae3d95e3d6f08cfa183cc553311b61a544690..f5eb28dbb7bb71c0a9bdea07048af534be3a223f 100644
--- a/example/freertos_feature/interrupt/configs/ft2004_aarch64_dsk_interrupt.config
+++ b/example/freertos_feature/interrupt/configs/ft2004_aarch64_dsk_interrupt.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -142,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -181,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -306,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -317,10 +310,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -340,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/interrupt/configs/phytiumpi_aarch32_firefly_interrupt.config b/example/freertos_feature/interrupt/configs/phytiumpi_aarch32_firefly_interrupt.config
index 029b2b8d70594530d5dcbd00488f0b5ab4f01eb7..d891f815116cb7d4b0248b95388f9613529c15cc 100644
--- a/example/freertos_feature/interrupt/configs/phytiumpi_aarch32_firefly_interrupt.config
+++ b/example/freertos_feature/interrupt/configs/phytiumpi_aarch32_firefly_interrupt.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -151,6 +151,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -190,7 +191,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +321,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +331,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +356,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/interrupt/configs/phytiumpi_aarch64_firefly_interrupt.config b/example/freertos_feature/interrupt/configs/phytiumpi_aarch64_firefly_interrupt.config
index e6ac83f344be7cbbf69f9fdc48c9457662d8c1a4..6e99430c43997157db2a4cc737947f86f180dac5 100644
--- a/example/freertos_feature/interrupt/configs/phytiumpi_aarch64_firefly_interrupt.config
+++ b/example/freertos_feature/interrupt/configs/phytiumpi_aarch64_firefly_interrupt.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -317,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -328,10 +321,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -351,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/interrupt/sdkconfig b/example/freertos_feature/interrupt/sdkconfig
index e6ac83f344be7cbbf69f9fdc48c9457662d8c1a4..6e99430c43997157db2a4cc737947f86f180dac5 100644
--- a/example/freertos_feature/interrupt/sdkconfig
+++ b/example/freertos_feature/interrupt/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -317,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -328,10 +321,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -351,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/interrupt/sdkconfig.h b/example/freertos_feature/interrupt/sdkconfig.h
index f7746952940d9b228349de74f7fca27e64607d59..e6f98ebfdf1832550cb512e2e94b2441480788ea 100644
--- a/example/freertos_feature/interrupt/sdkconfig.h
+++ b/example/freertos_feature/interrupt/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -113,8 +109,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -140,6 +134,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -175,7 +170,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -279,7 +275,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -290,9 +285,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -312,6 +309,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/freertos_feature/queue/Kconfig b/example/freertos_feature/queue/Kconfig
index 0a7f2daf1f2c47a9a03d2ea13cf5e0feb7db107f..09857c33685c4116ea9b3fbc843473709bf9b22e 100644
--- a/example/freertos_feature/queue/Kconfig
+++ b/example/freertos_feature/queue/Kconfig
@@ -3,6 +3,6 @@
# see tools/kconfiglib/kconfig-language.txt.
#
-mainmenu "Phytium Freertos Configuration"
+mainmenu "Phytium FreeRTOS Configuration"
source "$(SDK_DIR)/../freertos.kconfig"
diff --git a/example/freertos_feature/queue/configs/d2000_aarch32_test_queue.config b/example/freertos_feature/queue/configs/d2000_aarch32_test_queue.config
index b6a4404e4715872e2e170d1a1b61eec70f8de774..823cc5d1c44acc8cc23bde1e21a73ae7a4f31d8f 100644
--- a/example/freertos_feature/queue/configs/d2000_aarch32_test_queue.config
+++ b/example/freertos_feature/queue/configs/d2000_aarch32_test_queue.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -179,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -308,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -319,10 +320,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -342,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/queue/configs/d2000_aarch64_test_queue.config b/example/freertos_feature/queue/configs/d2000_aarch64_test_queue.config
index b6e743ccf3f94aaa2b33a14959f3fa4854927fd0..42a91f5836c4903c20ae0d5fe0eb43699d5fe477 100644
--- a/example/freertos_feature/queue/configs/d2000_aarch64_test_queue.config
+++ b/example/freertos_feature/queue/configs/d2000_aarch64_test_queue.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -142,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -181,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -306,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -317,10 +310,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -340,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/queue/configs/e2000d_aarch32_demo_queue.config b/example/freertos_feature/queue/configs/e2000d_aarch32_demo_queue.config
index c8b201f00248ce117f5a2f87b72f15d7d4a0ea40..5d43a1c3401cb99597427268ef16f11338ae81a8 100644
--- a/example/freertos_feature/queue/configs/e2000d_aarch32_demo_queue.config
+++ b/example/freertos_feature/queue/configs/e2000d_aarch32_demo_queue.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +153,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,7 +323,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -332,10 +333,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -355,4 +358,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/queue/configs/e2000d_aarch64_demo_queue.config b/example/freertos_feature/queue/configs/e2000d_aarch64_demo_queue.config
index bf5a450ca75492968a3831bde48c9d70018ae9fb..679402501b5b4bb7921153ac52284ecf5f5a42b1 100644
--- a/example/freertos_feature/queue/configs/e2000d_aarch64_demo_queue.config
+++ b/example/freertos_feature/queue/configs/e2000d_aarch64_demo_queue.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +147,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +323,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +348,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/queue/configs/e2000q_aarch32_demo_queue.config b/example/freertos_feature/queue/configs/e2000q_aarch32_demo_queue.config
index 600cdaa67feb42d635f7654fd5eb7c367e502ba2..8fc88bda9a50aa7fafe8438e573e8ed51e8e5dbf 100644
--- a/example/freertos_feature/queue/configs/e2000q_aarch32_demo_queue.config
+++ b/example/freertos_feature/queue/configs/e2000q_aarch32_demo_queue.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -152,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -191,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +322,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -331,10 +332,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -354,4 +357,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/queue/configs/e2000q_aarch64_demo_queue.config b/example/freertos_feature/queue/configs/e2000q_aarch64_demo_queue.config
index 99bc9378feece9369a8d54efc8f54e1407d1e925..d50d5a8a73ea20fbd29e12e8dec400e628d1180f 100644
--- a/example/freertos_feature/queue/configs/e2000q_aarch64_demo_queue.config
+++ b/example/freertos_feature/queue/configs/e2000q_aarch64_demo_queue.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +146,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +186,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -318,7 +312,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -329,10 +322,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -352,4 +347,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/queue/configs/ft2004_aarch32_dsk_queue.config b/example/freertos_feature/queue/configs/ft2004_aarch32_dsk_queue.config
index e9fb69624e60ca264ca65553ed342e3ca59dc1bd..7e62054f651192827d0b6fbb6ffd5ca52966ee24 100644
--- a/example/freertos_feature/queue/configs/ft2004_aarch32_dsk_queue.config
+++ b/example/freertos_feature/queue/configs/ft2004_aarch32_dsk_queue.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -179,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -308,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -319,10 +320,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -342,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/queue/configs/ft2004_aarch64_dsk_queue.config b/example/freertos_feature/queue/configs/ft2004_aarch64_dsk_queue.config
index 7f0b834824cdf7df99538252eb47a21a082f6fb5..13b8a4f4e3124bda81868992c5ad476f6438909d 100644
--- a/example/freertos_feature/queue/configs/ft2004_aarch64_dsk_queue.config
+++ b/example/freertos_feature/queue/configs/ft2004_aarch64_dsk_queue.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -142,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -181,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -306,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -317,10 +310,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -340,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/queue/configs/phytiumpi_aarch32_firefly_queue.config b/example/freertos_feature/queue/configs/phytiumpi_aarch32_firefly_queue.config
index ad45c3d0d17b931c3b04859ac5cb9785723cd6bc..dc984f84f49ffbcb4cc16a1c692a9ada32029b6a 100644
--- a/example/freertos_feature/queue/configs/phytiumpi_aarch32_firefly_queue.config
+++ b/example/freertos_feature/queue/configs/phytiumpi_aarch32_firefly_queue.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -151,6 +151,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -190,7 +191,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +321,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +331,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +356,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/queue/configs/phytiumpi_aarch64_firefly_queue.config b/example/freertos_feature/queue/configs/phytiumpi_aarch64_firefly_queue.config
index 9a446d810a33bbf092dbcf1e69bc7425b4b158f6..6eb7b54b726334d9a47bb4e6f5278f2d9a728c20 100644
--- a/example/freertos_feature/queue/configs/phytiumpi_aarch64_firefly_queue.config
+++ b/example/freertos_feature/queue/configs/phytiumpi_aarch64_firefly_queue.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -317,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -328,10 +321,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -351,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/queue/sdkconfig b/example/freertos_feature/queue/sdkconfig
index 9a446d810a33bbf092dbcf1e69bc7425b4b158f6..6eb7b54b726334d9a47bb4e6f5278f2d9a728c20 100644
--- a/example/freertos_feature/queue/sdkconfig
+++ b/example/freertos_feature/queue/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -317,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -328,10 +321,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -351,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/queue/sdkconfig.h b/example/freertos_feature/queue/sdkconfig.h
index fc6200f682de69d7639b9901d86322760b15a707..6a95406243b59f7123c06073f32c7299f70f5b99 100644
--- a/example/freertos_feature/queue/sdkconfig.h
+++ b/example/freertos_feature/queue/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -113,8 +109,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -140,6 +134,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -175,7 +170,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -279,7 +275,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -290,9 +285,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -312,6 +309,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/freertos_feature/resource/Kconfig b/example/freertos_feature/resource/Kconfig
index 5f1d79a1f3383e8d567c161ce58827e24d7aed12..c12dca42842e046755eacf5e16cf3e97bf13835b 100644
--- a/example/freertos_feature/resource/Kconfig
+++ b/example/freertos_feature/resource/Kconfig
@@ -4,7 +4,7 @@
#
-mainmenu "Phytium Freertos Configuration"
+mainmenu "Phytium FreeRTOS Configuration"
source "$(SDK_DIR)/../freertos.kconfig"
diff --git a/example/freertos_feature/resource/configs/d2000_aarch32_test_resoure.config b/example/freertos_feature/resource/configs/d2000_aarch32_test_resoure.config
index 46be3b8b484fb23bd59cdcd0da6453ad27ee9116..0fdb0693665cdef7426f4487aab1a42015392be8 100644
--- a/example/freertos_feature/resource/configs/d2000_aarch32_test_resoure.config
+++ b/example/freertos_feature/resource/configs/d2000_aarch32_test_resoure.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -179,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -308,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -319,10 +320,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -342,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/resource/configs/d2000_aarch64_test_resoure.config b/example/freertos_feature/resource/configs/d2000_aarch64_test_resoure.config
index d3351d4eaead49e4c56e4dc753f89883086159d5..07a64a1338aed60ba7539e1d11b1ee240030088e 100644
--- a/example/freertos_feature/resource/configs/d2000_aarch64_test_resoure.config
+++ b/example/freertos_feature/resource/configs/d2000_aarch64_test_resoure.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -142,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -181,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -306,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -317,10 +310,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -340,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/resource/configs/e2000d_aarch32_demo_resoure.config b/example/freertos_feature/resource/configs/e2000d_aarch32_demo_resoure.config
index 5e3b229e080328518bfea900ce4ac7c1b7b51c5e..d5134c4185a120d7a44ed375c2506dbcdb0180b6 100644
--- a/example/freertos_feature/resource/configs/e2000d_aarch32_demo_resoure.config
+++ b/example/freertos_feature/resource/configs/e2000d_aarch32_demo_resoure.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +153,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,7 +323,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -332,10 +333,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -355,4 +358,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/resource/configs/e2000d_aarch64_demo_resoure.config b/example/freertos_feature/resource/configs/e2000d_aarch64_demo_resoure.config
index 1751bc114ac7759cdafbc0eb229bfbdcaae807dd..50f52a8169f2ccac9be9750b15801c2e226fe4e7 100644
--- a/example/freertos_feature/resource/configs/e2000d_aarch64_demo_resoure.config
+++ b/example/freertos_feature/resource/configs/e2000d_aarch64_demo_resoure.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +147,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +323,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +348,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/resource/configs/e2000q_aarch32_demo_resoure.config b/example/freertos_feature/resource/configs/e2000q_aarch32_demo_resoure.config
index 847cbffcfa3264e7a69d8b0501789ead1cc21fbd..235a67181ed14aae61b9c4acb124ec7fc118768a 100644
--- a/example/freertos_feature/resource/configs/e2000q_aarch32_demo_resoure.config
+++ b/example/freertos_feature/resource/configs/e2000q_aarch32_demo_resoure.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -152,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -191,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +322,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -331,10 +332,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -354,4 +357,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/resource/configs/e2000q_aarch64_demo_resoure.config b/example/freertos_feature/resource/configs/e2000q_aarch64_demo_resoure.config
index 7d9ae2f8d6473929782451f5d2f4c889ae79b896..33638a6c4ccfaee6cbed828740056f41660b2596 100644
--- a/example/freertos_feature/resource/configs/e2000q_aarch64_demo_resoure.config
+++ b/example/freertos_feature/resource/configs/e2000q_aarch64_demo_resoure.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +146,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +186,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -318,7 +312,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -329,10 +322,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -352,4 +347,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/resource/configs/ft2004_aarch32_dsk_resoure.config b/example/freertos_feature/resource/configs/ft2004_aarch32_dsk_resoure.config
index a18cbd5437a563771cc5f110ab34af3a6aa417ae..52c559a6a482df8c3ad9342a3f45c89b5f3a98fe 100644
--- a/example/freertos_feature/resource/configs/ft2004_aarch32_dsk_resoure.config
+++ b/example/freertos_feature/resource/configs/ft2004_aarch32_dsk_resoure.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -179,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -308,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -319,10 +320,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -342,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/resource/configs/ft2004_aarch64_dsk_resoure.config b/example/freertos_feature/resource/configs/ft2004_aarch64_dsk_resoure.config
index 5d1396eb388df22abe5afc8a5f895e4f47ca8a6a..e95045d280999fd401d6fceccff84c4479970d3f 100644
--- a/example/freertos_feature/resource/configs/ft2004_aarch64_dsk_resoure.config
+++ b/example/freertos_feature/resource/configs/ft2004_aarch64_dsk_resoure.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -142,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -181,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -306,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -317,10 +310,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -340,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/resource/configs/phytiumpi_aarch32_firefly_resoure.config b/example/freertos_feature/resource/configs/phytiumpi_aarch32_firefly_resoure.config
index fc1ae1658288fdae25fb26a09fedcb7773fe8372..f61fc67b46259c1c495c5131ec5c6263f5afe9d5 100644
--- a/example/freertos_feature/resource/configs/phytiumpi_aarch32_firefly_resoure.config
+++ b/example/freertos_feature/resource/configs/phytiumpi_aarch32_firefly_resoure.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -151,6 +151,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -190,7 +191,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +321,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +331,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +356,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/resource/configs/phytiumpi_aarch64_firefly_resoure.config b/example/freertos_feature/resource/configs/phytiumpi_aarch64_firefly_resoure.config
index a8598ccb60ed8ab11b31a730105bfa63cbef4f57..ab5d46de7786006fb5624eada00f4e55e754b5cf 100644
--- a/example/freertos_feature/resource/configs/phytiumpi_aarch64_firefly_resoure.config
+++ b/example/freertos_feature/resource/configs/phytiumpi_aarch64_firefly_resoure.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -317,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -328,10 +321,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -351,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/resource/sdkconfig b/example/freertos_feature/resource/sdkconfig
index a8598ccb60ed8ab11b31a730105bfa63cbef4f57..ab5d46de7786006fb5624eada00f4e55e754b5cf 100644
--- a/example/freertos_feature/resource/sdkconfig
+++ b/example/freertos_feature/resource/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -317,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -328,10 +321,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -351,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/resource/sdkconfig.h b/example/freertos_feature/resource/sdkconfig.h
index 7dad4d4a71d25cb5cd8090f2e943c3833b03032c..4f5e077c787cccde4fa2ff9724ba7a68ce542f3a 100644
--- a/example/freertos_feature/resource/sdkconfig.h
+++ b/example/freertos_feature/resource/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -113,8 +109,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -140,6 +134,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -175,7 +170,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -279,7 +275,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -290,9 +285,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -312,6 +309,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/freertos_feature/software_timer/Kconfig b/example/freertos_feature/software_timer/Kconfig
index b2f5477fdf08aaeebc2894ed1baceec5ec1dd516..c440b23922a78b8b29a1e9ca36cac7804c066f1a 100644
--- a/example/freertos_feature/software_timer/Kconfig
+++ b/example/freertos_feature/software_timer/Kconfig
@@ -3,7 +3,7 @@
# see tools/kconfiglib/kconfig-language.txt.
#
-mainmenu "Phytium Freertos Configuration"
+mainmenu "Phytium FreeRTOS Configuration"
source "$(SDK_DIR)/../freertos.kconfig"
diff --git a/example/freertos_feature/software_timer/configs/d2000_aarch32_test_software_timer.config b/example/freertos_feature/software_timer/configs/d2000_aarch32_test_software_timer.config
index c32cd85f8aaa2c86688836310ced41b378d2f836..f3d8db4c68050a6bc1a0fc923dba9d621d2fe460 100644
--- a/example/freertos_feature/software_timer/configs/d2000_aarch32_test_software_timer.config
+++ b/example/freertos_feature/software_timer/configs/d2000_aarch32_test_software_timer.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -179,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -308,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -319,10 +320,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -342,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/software_timer/configs/d2000_aarch64_test_software_timer.config b/example/freertos_feature/software_timer/configs/d2000_aarch64_test_software_timer.config
index afa00bb2a1a9fa761c16011d12fc15fd25b1e522..a90c3280c98ba747873eb972ec294b7be94d46c2 100644
--- a/example/freertos_feature/software_timer/configs/d2000_aarch64_test_software_timer.config
+++ b/example/freertos_feature/software_timer/configs/d2000_aarch64_test_software_timer.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -142,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -181,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -306,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -317,10 +310,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -340,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/software_timer/configs/e2000d_aarch32_demo_software_timer.config b/example/freertos_feature/software_timer/configs/e2000d_aarch32_demo_software_timer.config
index 0936f2dc08b79aa0d1faef7237e24314d91e5cdd..f7034ad56e5224353945e9d54f79a972a5f3835b 100644
--- a/example/freertos_feature/software_timer/configs/e2000d_aarch32_demo_software_timer.config
+++ b/example/freertos_feature/software_timer/configs/e2000d_aarch32_demo_software_timer.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +153,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,7 +323,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -332,10 +333,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -355,4 +358,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/software_timer/configs/e2000d_aarch64_demo_software_timer.config b/example/freertos_feature/software_timer/configs/e2000d_aarch64_demo_software_timer.config
index 24ab7b1f8da83701635805f242f1461d0c99431d..639e51aef2fb5995dcdd32a5f9ed543d446d1ca5 100644
--- a/example/freertos_feature/software_timer/configs/e2000d_aarch64_demo_software_timer.config
+++ b/example/freertos_feature/software_timer/configs/e2000d_aarch64_demo_software_timer.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +147,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +323,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +348,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/software_timer/configs/e2000q_aarch32_demo_software_timer.config b/example/freertos_feature/software_timer/configs/e2000q_aarch32_demo_software_timer.config
index ce01f57eb24395f250017856ca0d4a55eb671103..e34d58784e51055ec75cb36fa80babb399fd37e8 100644
--- a/example/freertos_feature/software_timer/configs/e2000q_aarch32_demo_software_timer.config
+++ b/example/freertos_feature/software_timer/configs/e2000q_aarch32_demo_software_timer.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -152,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -191,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +322,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -331,10 +332,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -354,4 +357,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/software_timer/configs/e2000q_aarch64_demo_software_timer.config b/example/freertos_feature/software_timer/configs/e2000q_aarch64_demo_software_timer.config
index a0c0b205bf314b747111fcb054694292c9b274dc..8f99435fd98be08d4977ac6e665465e2c48e6777 100644
--- a/example/freertos_feature/software_timer/configs/e2000q_aarch64_demo_software_timer.config
+++ b/example/freertos_feature/software_timer/configs/e2000q_aarch64_demo_software_timer.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +146,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +186,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -318,7 +312,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -329,10 +322,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -352,4 +347,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/software_timer/configs/ft2004_aarch32_dsk_software_timer.config b/example/freertos_feature/software_timer/configs/ft2004_aarch32_dsk_software_timer.config
index fa810eaadf999a9130b8e70c214c42d0622fcdaa..a3e44ac7957fbb9274127d0d0fadd251c2ff06cc 100644
--- a/example/freertos_feature/software_timer/configs/ft2004_aarch32_dsk_software_timer.config
+++ b/example/freertos_feature/software_timer/configs/ft2004_aarch32_dsk_software_timer.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -179,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -308,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -319,10 +320,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -342,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/software_timer/configs/ft2004_aarch64_dsk_software_timer.config b/example/freertos_feature/software_timer/configs/ft2004_aarch64_dsk_software_timer.config
index deb25f572de02b4e6c11487c10c37054b8c6c7c6..9acc8474f48faf04333f2df0cad6157cd4609fb7 100644
--- a/example/freertos_feature/software_timer/configs/ft2004_aarch64_dsk_software_timer.config
+++ b/example/freertos_feature/software_timer/configs/ft2004_aarch64_dsk_software_timer.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -142,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -181,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -306,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -317,10 +310,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -340,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/software_timer/configs/phytiumpi_aarch32_firefly_software_timer.config b/example/freertos_feature/software_timer/configs/phytiumpi_aarch32_firefly_software_timer.config
index 95627a7d64d38d428bb85f6de5509fd5cdf77372..1de1b88b1065179d77b6763e7272abd330dc2f97 100644
--- a/example/freertos_feature/software_timer/configs/phytiumpi_aarch32_firefly_software_timer.config
+++ b/example/freertos_feature/software_timer/configs/phytiumpi_aarch32_firefly_software_timer.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -151,6 +151,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -190,7 +191,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +321,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +331,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +356,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/software_timer/configs/phytiumpi_aarch64_firefly_software_timer.config b/example/freertos_feature/software_timer/configs/phytiumpi_aarch64_firefly_software_timer.config
index 27da84c25f0c2314a9e48d1fa718f0601d708b79..8007f08f7a26eb1a3fb8bbe695761fd9e0d2a317 100644
--- a/example/freertos_feature/software_timer/configs/phytiumpi_aarch64_firefly_software_timer.config
+++ b/example/freertos_feature/software_timer/configs/phytiumpi_aarch64_firefly_software_timer.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -317,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -328,10 +321,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -351,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/software_timer/sdkconfig b/example/freertos_feature/software_timer/sdkconfig
index 27da84c25f0c2314a9e48d1fa718f0601d708b79..8007f08f7a26eb1a3fb8bbe695761fd9e0d2a317 100644
--- a/example/freertos_feature/software_timer/sdkconfig
+++ b/example/freertos_feature/software_timer/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -317,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -328,10 +321,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -351,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/software_timer/sdkconfig.h b/example/freertos_feature/software_timer/sdkconfig.h
index 3e8f043d67e1ddfff6b3b998af51c7edc5068142..cb7605bbf6336acc3d464d12858ec90daaac9ae4 100644
--- a/example/freertos_feature/software_timer/sdkconfig.h
+++ b/example/freertos_feature/software_timer/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -113,8 +109,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -140,6 +134,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -175,7 +170,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -279,7 +275,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -290,9 +285,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -312,6 +309,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/freertos_feature/task/Kconfig b/example/freertos_feature/task/Kconfig
index 5f1d79a1f3383e8d567c161ce58827e24d7aed12..c12dca42842e046755eacf5e16cf3e97bf13835b 100644
--- a/example/freertos_feature/task/Kconfig
+++ b/example/freertos_feature/task/Kconfig
@@ -4,7 +4,7 @@
#
-mainmenu "Phytium Freertos Configuration"
+mainmenu "Phytium FreeRTOS Configuration"
source "$(SDK_DIR)/../freertos.kconfig"
diff --git a/example/freertos_feature/task/configs/d2000_aarch32_test_task.config b/example/freertos_feature/task/configs/d2000_aarch32_test_task.config
index 089aa817daa550df0a134b9978cffe3cc49427d6..b51a77b6ad8f60b16c090dbaaca2f63f74614e86 100644
--- a/example/freertos_feature/task/configs/d2000_aarch32_test_task.config
+++ b/example/freertos_feature/task/configs/d2000_aarch32_test_task.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -179,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -308,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -319,10 +320,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -342,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task/configs/d2000_aarch64_test_task.config b/example/freertos_feature/task/configs/d2000_aarch64_test_task.config
index 5e9f6785c98fee4798ca4932fd3b456b0515e6c2..fced0f6d0c412502fe917a51b1ec3b664f62ba55 100644
--- a/example/freertos_feature/task/configs/d2000_aarch64_test_task.config
+++ b/example/freertos_feature/task/configs/d2000_aarch64_test_task.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -142,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -181,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -306,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -317,10 +310,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -340,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task/configs/e2000d_aarch32_demo_task.config b/example/freertos_feature/task/configs/e2000d_aarch32_demo_task.config
index cd78e736d8c803383063db3eefd701c2e6c83009..cee76e6e019e579c91b19ce9c3f8f6a34aca302c 100644
--- a/example/freertos_feature/task/configs/e2000d_aarch32_demo_task.config
+++ b/example/freertos_feature/task/configs/e2000d_aarch32_demo_task.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +153,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,7 +323,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -332,10 +333,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -355,4 +358,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task/configs/e2000d_aarch64_demo_task.config b/example/freertos_feature/task/configs/e2000d_aarch64_demo_task.config
index 09588bc538594075565e8693def8b1bbc33a12ad..481b658c321e455d52dd3a6bf0a7081efafa4cf6 100644
--- a/example/freertos_feature/task/configs/e2000d_aarch64_demo_task.config
+++ b/example/freertos_feature/task/configs/e2000d_aarch64_demo_task.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +147,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +323,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +348,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task/configs/e2000q_aarch32_demo_task.config b/example/freertos_feature/task/configs/e2000q_aarch32_demo_task.config
index 98e25e589f24ebb8fc966cdf881698b3917a830d..bff65a683f02c922c08c8753200189049765b907 100644
--- a/example/freertos_feature/task/configs/e2000q_aarch32_demo_task.config
+++ b/example/freertos_feature/task/configs/e2000q_aarch32_demo_task.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -152,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -191,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +322,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -331,10 +332,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -354,4 +357,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task/configs/e2000q_aarch64_demo_task.config b/example/freertos_feature/task/configs/e2000q_aarch64_demo_task.config
index 09f38167eafd41e9c7b463af6ac9a48dc1f269e6..37be0078100038cde174a9735830a88d60b0668d 100644
--- a/example/freertos_feature/task/configs/e2000q_aarch64_demo_task.config
+++ b/example/freertos_feature/task/configs/e2000q_aarch64_demo_task.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +146,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +186,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -318,7 +312,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -329,10 +322,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -352,4 +347,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task/configs/ft2004_aarch32_dsk_task.config b/example/freertos_feature/task/configs/ft2004_aarch32_dsk_task.config
index 949a0ff7f2dd3e362c42e891939ce8019a9c0b88..f615d2d7b5667c2bf4eca248a83246aa2c801d36 100644
--- a/example/freertos_feature/task/configs/ft2004_aarch32_dsk_task.config
+++ b/example/freertos_feature/task/configs/ft2004_aarch32_dsk_task.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -179,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -308,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -319,10 +320,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -342,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task/configs/ft2004_aarch64_dsk_task.config b/example/freertos_feature/task/configs/ft2004_aarch64_dsk_task.config
index 1470bfb9b212ffb333feca106e362a6ac2f0af7b..ca1407c95fe2f1f302b325592962ddd0c10795f6 100644
--- a/example/freertos_feature/task/configs/ft2004_aarch64_dsk_task.config
+++ b/example/freertos_feature/task/configs/ft2004_aarch64_dsk_task.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -142,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -181,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -306,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -317,10 +310,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -340,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task/configs/phytiumpi_aarch32_firefly_task.config b/example/freertos_feature/task/configs/phytiumpi_aarch32_firefly_task.config
index 4852a8847ecddc74f517288f85f2b5342cfc73af..da2424ecc6576fdbf0dc734fc67914f9516f001c 100644
--- a/example/freertos_feature/task/configs/phytiumpi_aarch32_firefly_task.config
+++ b/example/freertos_feature/task/configs/phytiumpi_aarch32_firefly_task.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -151,6 +151,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -190,7 +191,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +321,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +331,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +356,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task/configs/phytiumpi_aarch64_firefly_task.config b/example/freertos_feature/task/configs/phytiumpi_aarch64_firefly_task.config
index b8cfaccb9dcc5a3dfc3374058c94772aa9d504cd..b4e861f01d394bcd9b48c0a457801942366765c8 100644
--- a/example/freertos_feature/task/configs/phytiumpi_aarch64_firefly_task.config
+++ b/example/freertos_feature/task/configs/phytiumpi_aarch64_firefly_task.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -317,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -328,10 +321,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -351,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task/sdkconfig b/example/freertos_feature/task/sdkconfig
index b8cfaccb9dcc5a3dfc3374058c94772aa9d504cd..b4e861f01d394bcd9b48c0a457801942366765c8 100644
--- a/example/freertos_feature/task/sdkconfig
+++ b/example/freertos_feature/task/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -317,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -328,10 +321,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -351,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task/sdkconfig.h b/example/freertos_feature/task/sdkconfig.h
index d5838e2fb8494bde47fbcfd4436f46e76e7ad23a..030c78e9d00949595623858cc9448eb21834b18c 100644
--- a/example/freertos_feature/task/sdkconfig.h
+++ b/example/freertos_feature/task/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -113,8 +109,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -140,6 +134,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -175,7 +170,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -279,7 +275,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -290,9 +285,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -312,6 +309,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/freertos_feature/task_notify/Kconfig b/example/freertos_feature/task_notify/Kconfig
index 5f1d79a1f3383e8d567c161ce58827e24d7aed12..c12dca42842e046755eacf5e16cf3e97bf13835b 100644
--- a/example/freertos_feature/task_notify/Kconfig
+++ b/example/freertos_feature/task_notify/Kconfig
@@ -4,7 +4,7 @@
#
-mainmenu "Phytium Freertos Configuration"
+mainmenu "Phytium FreeRTOS Configuration"
source "$(SDK_DIR)/../freertos.kconfig"
diff --git a/example/freertos_feature/task_notify/configs/d2000_aarch32_test_task_notify.config b/example/freertos_feature/task_notify/configs/d2000_aarch32_test_task_notify.config
index fedcba08d96dd8af750305a191c570049fb84cba..3ac4ada31abdff5d9e9ceb560ed4980b892434cd 100644
--- a/example/freertos_feature/task_notify/configs/d2000_aarch32_test_task_notify.config
+++ b/example/freertos_feature/task_notify/configs/d2000_aarch32_test_task_notify.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -179,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -308,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -319,10 +320,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -342,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task_notify/configs/d2000_aarch64_test_task_notify.config b/example/freertos_feature/task_notify/configs/d2000_aarch64_test_task_notify.config
index d7eaa206f37d429c3b11e6d67d6e07a13dfc326e..2be3331135d880c3a0abf16cf8cf07205cf53803 100644
--- a/example/freertos_feature/task_notify/configs/d2000_aarch64_test_task_notify.config
+++ b/example/freertos_feature/task_notify/configs/d2000_aarch64_test_task_notify.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -142,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -181,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -306,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -317,10 +310,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -340,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task_notify/configs/e2000d_aarch32_demo_task_notify.config b/example/freertos_feature/task_notify/configs/e2000d_aarch32_demo_task_notify.config
index 52360fd31f064e225de92fa0be4e66cbc54deb6c..78c3c785e67ffa1f7c6a2215331a95071bfe6791 100644
--- a/example/freertos_feature/task_notify/configs/e2000d_aarch32_demo_task_notify.config
+++ b/example/freertos_feature/task_notify/configs/e2000d_aarch32_demo_task_notify.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +153,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,7 +323,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -332,10 +333,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -355,4 +358,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task_notify/configs/e2000d_aarch64_demo_task_notify.config b/example/freertos_feature/task_notify/configs/e2000d_aarch64_demo_task_notify.config
index c78569ebfecc59d336bc883dc074ccce4241605e..621d3527bd37082cba9c5ac4c01678686067705f 100644
--- a/example/freertos_feature/task_notify/configs/e2000d_aarch64_demo_task_notify.config
+++ b/example/freertos_feature/task_notify/configs/e2000d_aarch64_demo_task_notify.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +147,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +323,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +348,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task_notify/configs/e2000q_aarch32_demo_task_notify.config b/example/freertos_feature/task_notify/configs/e2000q_aarch32_demo_task_notify.config
index d6edf43ba8ecb02da328adfcb6442dbfa23c8782..f807bdfb3a0407a2de06970424e039053fc65094 100644
--- a/example/freertos_feature/task_notify/configs/e2000q_aarch32_demo_task_notify.config
+++ b/example/freertos_feature/task_notify/configs/e2000q_aarch32_demo_task_notify.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -152,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -191,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +322,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -331,10 +332,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -354,4 +357,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task_notify/configs/e2000q_aarch64_demo_task_notify.config b/example/freertos_feature/task_notify/configs/e2000q_aarch64_demo_task_notify.config
index 2768be2f1ccf76ec091b57a028fa9cf00de77e8f..2da7ac9d2fde5dde67c2673890626bd985b3bf17 100644
--- a/example/freertos_feature/task_notify/configs/e2000q_aarch64_demo_task_notify.config
+++ b/example/freertos_feature/task_notify/configs/e2000q_aarch64_demo_task_notify.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +146,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +186,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -318,7 +312,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -329,10 +322,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -352,4 +347,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task_notify/configs/ft2004_aarch32_dsk_task_notify.config b/example/freertos_feature/task_notify/configs/ft2004_aarch32_dsk_task_notify.config
index a2d4786e618498812c7d947b6ab9e0ee440d58ac..2ff89141ae50b294bb18e3fe6e2e2eed55320bfc 100644
--- a/example/freertos_feature/task_notify/configs/ft2004_aarch32_dsk_task_notify.config
+++ b/example/freertos_feature/task_notify/configs/ft2004_aarch32_dsk_task_notify.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -179,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -308,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -319,10 +320,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -342,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task_notify/configs/ft2004_aarch64_dsk_task_notify.config b/example/freertos_feature/task_notify/configs/ft2004_aarch64_dsk_task_notify.config
index b9b8f092ca4ab44bcc623e5fda64dcf47730c5f3..21975873ed7cb249ff44bf9239d6b096861b022e 100644
--- a/example/freertos_feature/task_notify/configs/ft2004_aarch64_dsk_task_notify.config
+++ b/example/freertos_feature/task_notify/configs/ft2004_aarch64_dsk_task_notify.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -142,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -181,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -306,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -317,10 +310,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -340,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task_notify/configs/phytiumpi_aarch32_firefly_task_notify.config b/example/freertos_feature/task_notify/configs/phytiumpi_aarch32_firefly_task_notify.config
index 8f9ee8a6e6d7650c23192f7bcb0fb72f5708a984..eb097a3c76697b3c25127714624957f97ca7b973 100644
--- a/example/freertos_feature/task_notify/configs/phytiumpi_aarch32_firefly_task_notify.config
+++ b/example/freertos_feature/task_notify/configs/phytiumpi_aarch32_firefly_task_notify.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -151,6 +151,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -190,7 +191,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +321,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +331,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +356,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task_notify/configs/phytiumpi_aarch64_firefly_task_notify.config b/example/freertos_feature/task_notify/configs/phytiumpi_aarch64_firefly_task_notify.config
index a60d768674c5d0a105a22865995b034fb6f5609f..c4e06f5f109cb539b941d9727e8ab9618bb3594e 100644
--- a/example/freertos_feature/task_notify/configs/phytiumpi_aarch64_firefly_task_notify.config
+++ b/example/freertos_feature/task_notify/configs/phytiumpi_aarch64_firefly_task_notify.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -317,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -328,10 +321,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -351,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task_notify/sdkconfig b/example/freertos_feature/task_notify/sdkconfig
index a60d768674c5d0a105a22865995b034fb6f5609f..c4e06f5f109cb539b941d9727e8ab9618bb3594e 100644
--- a/example/freertos_feature/task_notify/sdkconfig
+++ b/example/freertos_feature/task_notify/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -317,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -328,10 +321,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -351,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/freertos_feature/task_notify/sdkconfig.h b/example/freertos_feature/task_notify/sdkconfig.h
index a0b30dba6130b661167be9c88df276de55e3be0b..9f618cae6a936441ece93fd898ac9173ec7295ae 100644
--- a/example/freertos_feature/task_notify/sdkconfig.h
+++ b/example/freertos_feature/task_notify/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -113,8 +109,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -140,6 +134,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -175,7 +170,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -279,7 +275,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -290,9 +285,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -312,6 +309,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/network/lwip_startup/configs/d2000_aarch32_test_lwip_startup.config b/example/network/lwip_startup/configs/d2000_aarch32_test_lwip_startup.config
index dca681971ac6444c5595f6711c4ece0348b6c765..c8ff6e4b6dd32e5decb62c9bcb15743350f5321f 100644
--- a/example/network/lwip_startup/configs/d2000_aarch32_test_lwip_startup.config
+++ b/example/network/lwip_startup/configs/d2000_aarch32_test_lwip_startup.config
@@ -32,13 +32,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -119,8 +121,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -158,6 +158,7 @@ CONFIG_FGMAC_PHY_COMMON=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -197,7 +198,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -328,6 +330,7 @@ CONFIG_USE_LWIP=y
#
# CONFIG_LWIP_FXMAC is not set
CONFIG_LWIP_FGMAC=y
+# CONFIG_LWIP_FSDIF is not set
# CONFIG_LWIP_RX_POLL is not set
# end of LWIP Port Configuration
@@ -565,7 +568,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -576,10 +578,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -599,4 +603,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/network/lwip_startup/configs/d2000_aarch64_test_lwip_startup.config b/example/network/lwip_startup/configs/d2000_aarch64_test_lwip_startup.config
index 511671129f5aa67b5c3962f3d71bf03d6c56b6de..1203c1f6e8e6b9700809ecc8474038e9660d6a5d 100644
--- a/example/network/lwip_startup/configs/d2000_aarch64_test_lwip_startup.config
+++ b/example/network/lwip_startup/configs/d2000_aarch64_test_lwip_startup.config
@@ -121,8 +121,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/lwip_startup/configs/e2000d_aarch32_demo_lwip_startup.config b/example/network/lwip_startup/configs/e2000d_aarch32_demo_lwip_startup.config
index e1c956581e3a352d4983b0cd186f014fc67365ee..0a036ad4e30c8e47ffb8e4c7c4131c7e5f1610f8 100644
--- a/example/network/lwip_startup/configs/e2000d_aarch32_demo_lwip_startup.config
+++ b/example/network/lwip_startup/configs/e2000d_aarch32_demo_lwip_startup.config
@@ -132,8 +132,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/lwip_startup/configs/e2000d_aarch64_demo_lwip_startup.config b/example/network/lwip_startup/configs/e2000d_aarch64_demo_lwip_startup.config
index ecb51baa8240d526f0e6106ba1c6750e7a46df6b..1fb92e0d773aace5d1cb9d89db0e380506d948b8 100644
--- a/example/network/lwip_startup/configs/e2000d_aarch64_demo_lwip_startup.config
+++ b/example/network/lwip_startup/configs/e2000d_aarch64_demo_lwip_startup.config
@@ -134,8 +134,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/lwip_startup/configs/e2000q_aarch32_demo_lwip_startup.config b/example/network/lwip_startup/configs/e2000q_aarch32_demo_lwip_startup.config
index ebe170ef58eff49eb3a3ce52fd06b17c39bc8d8d..b9366526682612134e6b1b6165f8d1383333a7e0 100644
--- a/example/network/lwip_startup/configs/e2000q_aarch32_demo_lwip_startup.config
+++ b/example/network/lwip_startup/configs/e2000q_aarch32_demo_lwip_startup.config
@@ -131,8 +131,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/lwip_startup/configs/e2000q_aarch64_demo_lwip_startup.config b/example/network/lwip_startup/configs/e2000q_aarch64_demo_lwip_startup.config
index 9ba94de1bf25ef254464fcb65a0a60d882446150..c52f20ccd46b41e082f010c535dbf094f5c7baf6 100644
--- a/example/network/lwip_startup/configs/e2000q_aarch64_demo_lwip_startup.config
+++ b/example/network/lwip_startup/configs/e2000q_aarch64_demo_lwip_startup.config
@@ -133,8 +133,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/lwip_startup/configs/ft2004_aarch32_dsk_lwip_startup.config b/example/network/lwip_startup/configs/ft2004_aarch32_dsk_lwip_startup.config
index 00262a8ec644afda15f3b0041c5a9180f83188bc..e2f9cab82878cca31ff0c04a244344129f217403 100644
--- a/example/network/lwip_startup/configs/ft2004_aarch32_dsk_lwip_startup.config
+++ b/example/network/lwip_startup/configs/ft2004_aarch32_dsk_lwip_startup.config
@@ -119,8 +119,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/lwip_startup/configs/ft2004_aarch64_dsk_lwip_startup.config b/example/network/lwip_startup/configs/ft2004_aarch64_dsk_lwip_startup.config
index 6b6fe4620b0b1d897eefbc7cb42f5ba0e219dde8..98904a8daf290dda70f2e85a2a5ff162fe678d68 100644
--- a/example/network/lwip_startup/configs/ft2004_aarch64_dsk_lwip_startup.config
+++ b/example/network/lwip_startup/configs/ft2004_aarch64_dsk_lwip_startup.config
@@ -121,8 +121,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/lwip_startup/configs/phytiumpi_aarch32_firefly_lwip_startup.config b/example/network/lwip_startup/configs/phytiumpi_aarch32_firefly_lwip_startup.config
index adbe1fb11a9e4e4e998fc37a7bd4f804b8599795..549521908358e8b80c554fc690ef78d7666bf152 100644
--- a/example/network/lwip_startup/configs/phytiumpi_aarch32_firefly_lwip_startup.config
+++ b/example/network/lwip_startup/configs/phytiumpi_aarch32_firefly_lwip_startup.config
@@ -130,8 +130,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/lwip_startup/configs/phytiumpi_aarch64_firefly_lwip_startup.config b/example/network/lwip_startup/configs/phytiumpi_aarch64_firefly_lwip_startup.config
index b214a387c7bedf067d6eb24274b68834e4d1a29b..c9c16e4691c9f0c560a858163bf3164f64b5e176 100644
--- a/example/network/lwip_startup/configs/phytiumpi_aarch64_firefly_lwip_startup.config
+++ b/example/network/lwip_startup/configs/phytiumpi_aarch64_firefly_lwip_startup.config
@@ -132,8 +132,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -171,6 +169,7 @@ CONFIG_FXMAC_PHY_COMMON=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -210,7 +209,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -337,6 +337,7 @@ CONFIG_USE_LWIP=y
#
CONFIG_LWIP_FXMAC=y
# CONFIG_LWIP_FGMAC is not set
+# CONFIG_LWIP_FSDIF is not set
# CONFIG_LWIP_RX_POLL is not set
# end of LWIP Port Configuration
@@ -574,7 +575,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -585,10 +585,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -608,4 +610,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/network/lwip_startup/sdkconfig b/example/network/lwip_startup/sdkconfig
index b214a387c7bedf067d6eb24274b68834e4d1a29b..c8ff6e4b6dd32e5decb62c9bcb15743350f5321f 100644
--- a/example/network/lwip_startup/sdkconfig
+++ b/example/network/lwip_startup/sdkconfig
@@ -17,8 +17,8 @@ CONFIG_ARCH_NAME="armv8"
#
# Arm architecture configuration
#
-CONFIG_ARCH_ARMV8_AARCH64=y
-# CONFIG_ARCH_ARMV8_AARCH32 is not set
+# CONFIG_ARCH_ARMV8_AARCH64 is not set
+CONFIG_ARCH_ARMV8_AARCH32=y
#
# Compiler configuration
@@ -26,46 +26,46 @@ CONFIG_ARCH_ARMV8_AARCH64=y
CONFIG_ARM_GCC_SELECT=y
# CONFIG_ARM_CLANG_SELECT is not set
CONFIG_TOOLCHAIN_NAME="gcc"
-CONFIG_TARGET_ARMV8_AARCH64=y
-CONFIG_ARCH_EXECUTION_STATE="aarch64"
+CONFIG_TARGET_ARMV8_AARCH32=y
+CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-CONFIG_ARM_NEON=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
-
-CONFIG_ARM_CRC=y
-CONFIG_ARM_CRYPTO=y
-CONFIG_ARM_FLOAT_POINT=y
-# CONFIG_GCC_CODE_MODEL_TINY is not set
-CONFIG_GCC_CODE_MODEL_SMALL=y
-# CONFIG_GCC_CODE_MODEL_LARGE is not set
# end of Compiler configuration
CONFIG_USE_CACHE=y
+# CONFIG_USE_L3CACHE is not set
CONFIG_USE_MMU=y
-# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
-# CONFIG_MMU_DEBUG_PRINTS is not set
+CONFIG_USE_AARCH64_L1_TO_AARCH32=y
# end of Arm architecture configuration
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
-# CONFIG_TARGET_D2000 is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_TARGET_D2000=y
+CONFIG_SOC_NAME="d2000"
+CONFIG_SOC_CORE_NUM=8
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
# CONFIG_USE_SPINLOCK is not set
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
@@ -75,23 +75,12 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
+CONFIG_BOARD_NAME="test"
+CONFIG_D2000_TEST_BOARD=y
#
# IO mux configuration when board start up
#
-# end of IO mux configuration when board start up
-
# CONFIG_CUS_DEMO_BOARD is not set
#
@@ -128,12 +117,10 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
# Drivers configuration
#
CONFIG_USE_IOMUX=y
-# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+CONFIG_ENABLE_IOCTRL=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -148,10 +135,10 @@ CONFIG_USE_ETH=y
#
# Eth Configuration
#
-CONFIG_ENABLE_FXMAC=y
-# CONFIG_ENABLE_FGMAC is not set
-CONFIG_FXMAC_PHY_COMMON=y
-# CONFIG_FXMAC_PHY_YT is not set
+# CONFIG_ENABLE_FXMAC is not set
+CONFIG_ENABLE_FGMAC=y
+CONFIG_FGMAC_PHY_COMMON=y
+# CONFIG_FGMAC_PHY_AR803X is not set
# end of Eth Configuration
# CONFIG_USE_CAN is not set
@@ -171,6 +158,7 @@ CONFIG_FXMAC_PHY_COMMON=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -210,7 +198,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -223,8 +212,12 @@ CONFIG_DEFAULT_LINKER_SCRIPT=y
CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
CONFIG_IMAGE_MAX_LENGTH=0x1000000
CONFIG_HEAP_SIZE=1
-CONFIG_STACK_SIZE=0x400
-CONFIG_FPU_STACK_SIZE=0x1000
+CONFIG_SVC_STACK_SIZE=0x1000
+CONFIG_SYS_STACK_SIZE=0x1000
+CONFIG_IRQ_STACK_SIZE=0x1000
+CONFIG_ABORT_STACK_SIZE=0x1000
+CONFIG_FIQ_STACK_SIZE=0x1000
+CONFIG_UNDEF_STACK_SIZE=0x1000
# end of Linker Options
# end of Build setup
@@ -259,8 +252,8 @@ CONFIG_FREERTOS_USE_UART=y
#
# Freertos Eth Drivers
#
-CONFIG_FREERTOS_USE_XMAC=y
-# CONFIG_FREERTOS_USE_GMAC is not set
+# CONFIG_FREERTOS_USE_XMAC is not set
+CONFIG_FREERTOS_USE_GMAC=y
# end of Freertos Eth Drivers
#
@@ -335,8 +328,9 @@ CONFIG_USE_LWIP=y
#
# LWIP Port Configuration
#
-CONFIG_LWIP_FXMAC=y
-# CONFIG_LWIP_FGMAC is not set
+# CONFIG_LWIP_FXMAC is not set
+CONFIG_LWIP_FGMAC=y
+# CONFIG_LWIP_FSDIF is not set
# CONFIG_LWIP_RX_POLL is not set
# end of LWIP Port Configuration
@@ -574,7 +568,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -585,10 +578,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -608,4 +603,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/network/lwip_startup/sdkconfig.h b/example/network/lwip_startup/sdkconfig.h
index a22ffa88030bd1594da06edd2d439cd97bea252d..06bbc5663ccf86eafade36de3eb21810b3f0f3e1 100644
--- a/example/network/lwip_startup/sdkconfig.h
+++ b/example/network/lwip_startup/sdkconfig.h
@@ -15,50 +15,51 @@
/* Arm architecture configuration */
-#define CONFIG_ARCH_ARMV8_AARCH64
-/* CONFIG_ARCH_ARMV8_AARCH32 is not set */
+/* CONFIG_ARCH_ARMV8_AARCH64 is not set */
+#define CONFIG_ARCH_ARMV8_AARCH32
/* Compiler configuration */
#define CONFIG_ARM_GCC_SELECT
/* CONFIG_ARM_CLANG_SELECT is not set */
#define CONFIG_TOOLCHAIN_NAME "gcc"
-#define CONFIG_TARGET_ARMV8_AARCH64
-#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
+#define CONFIG_TARGET_ARMV8_AARCH32
+#define CONFIG_ARCH_EXECUTION_STATE "aarch32"
/* Fpu configuration */
-#define CONFIG_ARM_NEON
+#define CONFIG_CRYPTO_NEON_FP_ARMV8
+/* CONFIG_VFPV4 is not set */
+/* CONFIG_VFPV4_D16 is not set */
+/* CONFIG_VFPV3 is not set */
+/* CONFIG_VFPV3_D16 is not set */
+#define CONFIG_ARM_MFPU "crypto-neon-fp-armv8"
+#define CONFIG_MFLOAT_ABI_HARD
+/* CONFIG_MFLOAT_ABI_SOFTFP is not set */
+#define CONFIG_ARM_MFLOAT_ABI "hard"
/* end of Fpu configuration */
-#define CONFIG_ARM_CRC
-#define CONFIG_ARM_CRYPTO
-#define CONFIG_ARM_FLOAT_POINT
-/* CONFIG_GCC_CODE_MODEL_TINY is not set */
-#define CONFIG_GCC_CODE_MODEL_SMALL
-/* CONFIG_GCC_CODE_MODEL_LARGE is not set */
/* end of Compiler configuration */
#define CONFIG_USE_CACHE
+/* CONFIG_USE_L3CACHE is not set */
#define CONFIG_USE_MMU
-/* CONFIG_BOOT_WITH_FLUSH_CACHE is not set */
-/* CONFIG_MMU_DEBUG_PRINTS is not set */
+#define CONFIG_USE_AARCH64_L1_TO_AARCH32
/* end of Arm architecture configuration */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
-/* CONFIG_TARGET_D2000 is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_TARGET_D2000
+#define CONFIG_SOC_NAME "d2000"
+#define CONFIG_SOC_CORE_NUM 8
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
/* CONFIG_USE_SPINLOCK is not set */
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
@@ -67,21 +68,11 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
+#define CONFIG_BOARD_NAME "test"
+#define CONFIG_D2000_TEST_BOARD
/* IO mux configuration when board start up */
-/* end of IO mux configuration when board start up */
/* CONFIG_CUS_DEMO_BOARD is not set */
/* Build project name */
@@ -114,12 +105,10 @@
/* Drivers configuration */
#define CONFIG_USE_IOMUX
-/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+#define CONFIG_ENABLE_IOCTRL
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -131,10 +120,10 @@
/* Eth Configuration */
-#define CONFIG_ENABLE_FXMAC
-/* CONFIG_ENABLE_FGMAC is not set */
-#define CONFIG_FXMAC_PHY_COMMON
-/* CONFIG_FXMAC_PHY_YT is not set */
+/* CONFIG_ENABLE_FXMAC is not set */
+#define CONFIG_ENABLE_FGMAC
+#define CONFIG_FGMAC_PHY_COMMON
+/* CONFIG_FGMAC_PHY_AR803X is not set */
/* end of Eth Configuration */
/* CONFIG_USE_CAN is not set */
/* CONFIG_USE_I2C is not set */
@@ -153,6 +142,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -188,7 +178,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -199,8 +190,12 @@
#define CONFIG_IMAGE_LOAD_ADDRESS 0x80100000
#define CONFIG_IMAGE_MAX_LENGTH 0x1000000
#define CONFIG_HEAP_SIZE 1
-#define CONFIG_STACK_SIZE 0x400
-#define CONFIG_FPU_STACK_SIZE 0x1000
+#define CONFIG_SVC_STACK_SIZE 0x1000
+#define CONFIG_SYS_STACK_SIZE 0x1000
+#define CONFIG_IRQ_STACK_SIZE 0x1000
+#define CONFIG_ABORT_STACK_SIZE 0x1000
+#define CONFIG_FIQ_STACK_SIZE 0x1000
+#define CONFIG_UNDEF_STACK_SIZE 0x1000
/* end of Linker Options */
/* end of Build setup */
@@ -228,8 +223,8 @@
/* Freertos Eth Drivers */
-#define CONFIG_FREERTOS_USE_XMAC
-/* CONFIG_FREERTOS_USE_GMAC is not set */
+/* CONFIG_FREERTOS_USE_XMAC is not set */
+#define CONFIG_FREERTOS_USE_GMAC
/* end of Freertos Eth Drivers */
/* Freertos Gpio Drivers */
@@ -289,8 +284,9 @@
/* LWIP Port Configuration */
-#define CONFIG_LWIP_FXMAC
-/* CONFIG_LWIP_FGMAC is not set */
+/* CONFIG_LWIP_FXMAC is not set */
+#define CONFIG_LWIP_FGMAC
+/* CONFIG_LWIP_FSDIF is not set */
/* CONFIG_LWIP_RX_POLL is not set */
/* end of LWIP Port Configuration */
/* CONFIG_LWIP_NO_SYS is not set */
@@ -499,7 +495,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -510,9 +505,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -532,6 +529,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/network/sockets/udp_multicast/configs/d2000_aarch32_test_udp_multicast.config b/example/network/sockets/udp_multicast/configs/d2000_aarch32_test_udp_multicast.config
index df891ae0f3efef82b23841696706c8b38f92b696..f67fdd7272e50bb0c836e9817523f810c4301a0b 100644
--- a/example/network/sockets/udp_multicast/configs/d2000_aarch32_test_udp_multicast.config
+++ b/example/network/sockets/udp_multicast/configs/d2000_aarch32_test_udp_multicast.config
@@ -128,8 +128,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/sockets/udp_multicast/configs/d2000_aarch64_test_udp_multicast.config b/example/network/sockets/udp_multicast/configs/d2000_aarch64_test_udp_multicast.config
index 4a8d84def4319094affd94c9270cf6799656dd0a..2fd1ea2e79436a343327b0f15b611f91ce90f4fb 100644
--- a/example/network/sockets/udp_multicast/configs/d2000_aarch64_test_udp_multicast.config
+++ b/example/network/sockets/udp_multicast/configs/d2000_aarch64_test_udp_multicast.config
@@ -130,8 +130,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/sockets/udp_multicast/configs/e2000d_aarch32_demo_udp_multicast.config b/example/network/sockets/udp_multicast/configs/e2000d_aarch32_demo_udp_multicast.config
index fe3353b782228cd10053991bec3904dc4bce2c15..2fcf21d07bd968c09fd19ec3c63045b1f88b5ce7 100644
--- a/example/network/sockets/udp_multicast/configs/e2000d_aarch32_demo_udp_multicast.config
+++ b/example/network/sockets/udp_multicast/configs/e2000d_aarch32_demo_udp_multicast.config
@@ -141,8 +141,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/sockets/udp_multicast/configs/e2000d_aarch64_demo_udp_multicast.config b/example/network/sockets/udp_multicast/configs/e2000d_aarch64_demo_udp_multicast.config
index b879c7f7df8cbe2982958a0b000a85662bce9f63..3e41f1dfd8e63ce1019c88557000e166a0cd44a0 100644
--- a/example/network/sockets/udp_multicast/configs/e2000d_aarch64_demo_udp_multicast.config
+++ b/example/network/sockets/udp_multicast/configs/e2000d_aarch64_demo_udp_multicast.config
@@ -143,8 +143,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/sockets/udp_multicast/configs/e2000q_aarch32_demo_udp_multicast.config b/example/network/sockets/udp_multicast/configs/e2000q_aarch32_demo_udp_multicast.config
index 55c1cc93526938fc63a183e779a129dff0fcb371..7ec0df2df547f2836e1cf139338bce7f17e8c4a2 100644
--- a/example/network/sockets/udp_multicast/configs/e2000q_aarch32_demo_udp_multicast.config
+++ b/example/network/sockets/udp_multicast/configs/e2000q_aarch32_demo_udp_multicast.config
@@ -140,8 +140,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/sockets/udp_multicast/configs/e2000q_aarch64_demo_udp_multicast.config b/example/network/sockets/udp_multicast/configs/e2000q_aarch64_demo_udp_multicast.config
index 2773143025e489ccc48f932fbf0a1e0cb416caf9..341fe08a05299e0f7e1cb6d6c0ca1bc844fd7329 100644
--- a/example/network/sockets/udp_multicast/configs/e2000q_aarch64_demo_udp_multicast.config
+++ b/example/network/sockets/udp_multicast/configs/e2000q_aarch64_demo_udp_multicast.config
@@ -142,8 +142,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/sockets/udp_multicast/configs/ft2004_aarch32_dsk_udp_multicast.config b/example/network/sockets/udp_multicast/configs/ft2004_aarch32_dsk_udp_multicast.config
index afa11742894e1015dfc22cc503d622fffe5db740..e2f49e3656d2468ed5d4a8ef5266cdcdd8cb7b0b 100644
--- a/example/network/sockets/udp_multicast/configs/ft2004_aarch32_dsk_udp_multicast.config
+++ b/example/network/sockets/udp_multicast/configs/ft2004_aarch32_dsk_udp_multicast.config
@@ -128,8 +128,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/sockets/udp_multicast/configs/ft2004_aarch64_dsk_udp_multicast.config b/example/network/sockets/udp_multicast/configs/ft2004_aarch64_dsk_udp_multicast.config
index cacce21722baf77b1ed466745b00676254ba1269..b31c8356a0bca30351da7a17b9e4d04bc74d63fd 100644
--- a/example/network/sockets/udp_multicast/configs/ft2004_aarch64_dsk_udp_multicast.config
+++ b/example/network/sockets/udp_multicast/configs/ft2004_aarch64_dsk_udp_multicast.config
@@ -130,8 +130,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/sockets/udp_multicast/configs/phytiumpi_aarch32_firefly_udp_multicast.config b/example/network/sockets/udp_multicast/configs/phytiumpi_aarch32_firefly_udp_multicast.config
index 130fef4012fa179fd2e6d844f181acf6647d41c1..7de3e7295a1a021e84e673ecc552965a5838386b 100644
--- a/example/network/sockets/udp_multicast/configs/phytiumpi_aarch32_firefly_udp_multicast.config
+++ b/example/network/sockets/udp_multicast/configs/phytiumpi_aarch32_firefly_udp_multicast.config
@@ -139,8 +139,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/sockets/udp_multicast/configs/phytiumpi_aarch64_firefly_udp_multicast.config b/example/network/sockets/udp_multicast/configs/phytiumpi_aarch64_firefly_udp_multicast.config
index 7e921c59d7aad797588891cc22474b11313ae40f..6a9ab758da9d1c90af2f8543fb937e39de8bc84b 100644
--- a/example/network/sockets/udp_multicast/configs/phytiumpi_aarch64_firefly_udp_multicast.config
+++ b/example/network/sockets/udp_multicast/configs/phytiumpi_aarch64_firefly_udp_multicast.config
@@ -141,8 +141,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/sockets/udp_multicast/sdkconfig b/example/network/sockets/udp_multicast/sdkconfig
index 7e921c59d7aad797588891cc22474b11313ae40f..6a9ab758da9d1c90af2f8543fb937e39de8bc84b 100644
--- a/example/network/sockets/udp_multicast/sdkconfig
+++ b/example/network/sockets/udp_multicast/sdkconfig
@@ -141,8 +141,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
diff --git a/example/network/sockets/udp_multicast/sdkconfig.h b/example/network/sockets/udp_multicast/sdkconfig.h
index b9331c75f0d0284a102a0348c5e27da1b52c004e..3bf88374a501127bfb025f4bf6a432ac0f5ee75c 100644
--- a/example/network/sockets/udp_multicast/sdkconfig.h
+++ b/example/network/sockets/udp_multicast/sdkconfig.h
@@ -127,8 +127,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
diff --git a/example/network/wlan/COPYING-BSD-3 b/example/network/wlan/COPYING-BSD-3
new file mode 100644
index 0000000000000000000000000000000000000000..de461d9586c7c91adce50f8d3743ad5008d9a6e0
--- /dev/null
+++ b/example/network/wlan/COPYING-BSD-3
@@ -0,0 +1,33 @@
+The BSD 3 Clause License
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors
+may be used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/example/network/wlan/Kconfig b/example/network/wlan/Kconfig
new file mode 100644
index 0000000000000000000000000000000000000000..de5570b3a8304298f3a4904b5c653b2e4f982e74
--- /dev/null
+++ b/example/network/wlan/Kconfig
@@ -0,0 +1,3 @@
+mainmenu "Phytium freertos Configuration"
+
+source "$(SDK_DIR)/../freertos.kconfig"
\ No newline at end of file
diff --git a/example/network/wlan/README.md b/example/network/wlan/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..7dba9353765baa4af5ce9cd3e3ebf91d96c65556
--- /dev/null
+++ b/example/network/wlan/README.md
@@ -0,0 +1,161 @@
+# WLAN 无线局域网测试
+
+- 无线局域网 WLAN(Wireless Local Area Network)是一种无线计算机网络,使用无线信道代替有线传输介质连接两个或多个设备形成一个局域网LAN(Local Area Network)
+- WLAN 的典型部署场景如家庭、学校、校园或企业办公楼等。WLAN是一个网络系统,而我们常见的Wi-Fi是这个网络系统中的一种技术。所以,WLAN和Wi-Fi之间是包含关系,WLAN包含了Wi-Fi
+- 本例程中,使用 Marvell8801 SDIO Wifi 卡实现了 WLAN 的 Station 和 AP 两种模式
+- 在 Station 模式中,外接 Marvell8801 的开发板通过热点(AP)连接和访问互联网
+- 在 AP 模式中,开发板作为热点,支持其他 Station 模式设备连接此热点
+
+> 本例程参考了 [mcu-sdk-examples](https://github.com/nxp-mcuxpresso/mcux-sdk-examples) 的 wifi_examples,进行了修改,Marvell 8801 Wifi 协议栈移植来自 [wifi_nxp](https://github.com/NXP/wifi_nxp)
+
+## 1. 例程介绍
+
+- Station 模式 (cmd_station.c), 演示了开发板扫描周围的热点信息,然后选择一个热点进行连接后,ping 一个外网 ip 地址的过程
+- AP 模式 (cmd_ap.c), 演示了开发板作为一个热点,接受其他设备无线接入,为接入设备动态分配 ip 地址的过程
+
+## 2. 如何使用例程
+
+本例程需要用到
+
+- Phytium开发板(E2000D/E2000Q)
+- SD 扩展卡槽
+- Marvell8801 SDIO Wifi 卡
+
+
+
+- 杜邦线若干
+- [Phytium FreeRTOS SDK](https://gitee.com/phytium_embedded/phytium-free-rtos-sdk)
+- [Phytium Standalone SDK](https://gitee.com/phytium_embedded/phytium-standalone-sdk)
+
+### 2.1 硬件配置方法
+
+本例程支持的硬件平台包括
+
+- E2000系列
+
+对应的配置项是,
+
+- CONFIG_TARGET_E2000D
+- CONFIG_TARGET_E2000Q
+
+通过 SD 扩展卡槽连接 Marvell8801 模块,88MW8801 上的 PDN 脚接 GPIO 1-4 脚,通过 GPIO 1-4 脚的上升沿控制 88MW8801 的重置
+
+
+
+### 2.2 SDK配置方法
+
+本例程需要,
+
+- 使能Shell
+
+对应的配置项是,
+
+- CONFIG_USE_LETTER_SHELL
+- CONFIG_USE_FSL_SDMMC
+- CONFIG_USE_FSL_WIFI
+
+本例子已经提供好具体的编译指令,以下进行介绍:
+- make 将目录下的工程进行编译
+- make clean 将目录下的工程进行清理
+- make image 将目录下的工程进行编译,并将生成的elf 复制到目标地址
+- make list_kconfig 当前工程支持哪些配置文件
+- make load_kconfig LOAD_CONFIG_NAME= 将预设配置加载至工程中
+- make menuconfig 配置目录下的参数变量
+- make backup_kconfig 将目录下的sdkconfig 备份到./configs下
+
+具体使用方法为:
+- 在当前目录下
+- 执行以上指令
+
+### 2.3 构建和下载
+
+#### 2.3.1 构建过程
+
+>描述构建、烧录下载镜像的过程,列出相关的命令
+
+[参考 freertos 使用说明](../../docs/reference/usr/usage.md)
+
+#### 2.3.2 下载过程
+
+- host侧设置重启host侧tftp服务器
+```
+sudo service tftpd-hpa restart
+```
+
+- 开发板侧使用bootelf命令跳转
+```
+setenv ipaddr 192.168.4.20
+setenv serverip 192.168.4.50
+setenv gatewayip 192.168.4.1
+tftpboot 0x90100000 freertos.elf
+bootelf -p 0x90100000
+```
+
+### 2.4 输出与实验现象
+
+#### 2.4.1 Station 模式连接 AP 热点
+
+- 准备一个 AP 热点,例如路由器或者手机热点,本例程 中用小米手机产生一个 AP 热点供开发板连接
+> 注意本例程只支持 Wifi4 的 2.4GHz 频率,确保 AP 热点设备兼容 Wifi4, 以 2.4GHz 发射无线信号
+
+
+
+- AP 热点(SSID = TEST, PASSWORD = 12345678, 加密方式为 WPA2)建立后,输入下列命令,初始化 Wifi 软件栈,同时扫描目标 AP
+
+```
+wlan_station scan
+```
+
+- 如图所示,`TEST` AP 已经被扫描到了
+
+
+
+- 为了测试开发板是否与外网联通,我们可以先找一个公网 ip,找一台 Windows 或者 Linux 主机,ping 一个域名,可以看到一个目标公网 ip,如下图所示,是 220.181.38.150
+
+```
+ping www.baidu.com
+```
+
+
+
+- 然后输入下列命令,连接 `TEST` AP
+
+```
+wlan_station join TEST 12345678
+```
+
+
+
+```
+wlan_station ping 220.181.38.150
+```
+
+
+
+- 上图可以看到,开发板 ping 公网 ip 是通的
+
+#### 2.4.2 AP 模式接受其他设备接入
+
+- 重启开发板,加载镜像后,输入下列命令启动一个 AP 热点
+
+```
+wlan_ap start
+```
+
+- 然后在手机或者笔记本电脑端搜索到 AP `phytium_wifi` 然后连接
+
+
+
+- 连接成功后可以看到 AP 的信息,以及分配到的 ip 地址
+
+
+
+> 目前 AP 模式演示了接入热点的功能,能够为接入的设备动态分配地址,但是 AP 组网通信可能是不通的,即连接同一个 AP 的不同设备间通信需要后续支持
+
+## 3. 如何解决问题
+
+## 4. 修改历史记录
+
+>记录例程的重大修改记录,标明修改发生的版本号
+
+- v1.2.1 首次合入
\ No newline at end of file
diff --git a/example/network/wlan/configs/e2000d_aarch32_demo_wlan.config b/example/network/wlan/configs/e2000d_aarch32_demo_wlan.config
new file mode 100644
index 0000000000000000000000000000000000000000..794590e61f6cf442a3bae6b1c1bfc0260328e0ce
--- /dev/null
+++ b/example/network/wlan/configs/e2000d_aarch32_demo_wlan.config
@@ -0,0 +1,618 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+# CONFIG_ARCH_ARMV8_AARCH64 is not set
+CONFIG_ARCH_ARMV8_AARCH32=y
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH32=y
+CONFIG_ARCH_EXECUTION_STATE="aarch32"
+
+#
+# Fpu configuration
+#
+CONFIG_ARCH_FPU=y
+# CONFIG_ARCH_FPU_VFP_V3 is not set
+CONFIG_ARCH_FPU_VFP_V4=y
+CONFIG_ARM_DPFPU32=y
+# CONFIG_ARM_FPU_ABI_SOFT is not set
+CONFIG_ARM_NEON=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
+# end of Fpu configuration
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+CONFIG_USE_AARCH64_L1_TO_AARCH32=y
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+# CONFIG_TARGET_E2000Q is not set
+CONFIG_TARGET_E2000D=y
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="d"
+CONFIG_SOC_CORE_NUM=2
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_E2000D_DEMO_BOARD=y
+CONFIG_BOARD_NAME="demo"
+
+#
+# IO mux configuration when board start up
+#
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_ADC_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="wlan"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_WARN is not set
+CONFIG_LOG_ERROR=y
+# CONFIG_LOG_NONE is not set
+# CONFIG_LOG_EXTRA_INFO is not set
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+CONFIG_USE_GPIO=y
+CONFIG_ENABLE_FGPIO=y
+# CONFIG_USE_ETH is not set
+# CONFIG_USE_CAN is not set
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+CONFIG_USE_SDMMC=y
+# CONFIG_ENABLE_FSDMMC is not set
+CONFIG_ENABLE_FSDIF=y
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+CONFIG_CHECK_DEPS=y
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+# CONFIG_FRAME_POINTER is not set
+CONFIG_OUTPUT_ASM_DIS=y
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+CONFIG_USE_COMPILE_CHAIN=y
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_SVC_STACK_SIZE=0x1000
+CONFIG_SYS_STACK_SIZE=0x1000
+CONFIG_IRQ_STACK_SIZE=0x1000
+CONFIG_ABORT_STACK_SIZE=0x1000
+CONFIG_FIQ_STACK_SIZE=0x1000
+CONFIG_UNDEF_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+# CONFIG_FREERTOS_USE_CAN is not set
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+CONFIG_USE_LWIP=y
+
+#
+# LWIP Freertos Port Configuration
+#
+
+#
+# LWIP Configuration
+#
+
+#
+# LWIP Port Configuration
+#
+# CONFIG_LWIP_FXMAC is not set
+# CONFIG_LWIP_FGMAC is not set
+CONFIG_LWIP_FSDIF=y
+# CONFIG_LWIP_RX_POLL is not set
+# end of LWIP Port Configuration
+
+# CONFIG_LWIP_NO_SYS is not set
+CONFIG_LWIP_LOCAL_HOSTNAME="phytium"
+
+#
+# LWIP_APP
+#
+CONFIG_USE_LWIP_APP_LWIPERF=y
+CONFIG_USE_LWIP_APP_PING=y
+# CONFIG_USE_LWIP_APP_TFTP is not set
+# end of LWIP_APP
+
+#
+# Memory configuration
+#
+# CONFIG_LWIP_USE_MEM_POOL is not set
+CONFIG_LWIP_USE_MEM_HEAP=y
+# CONFIG_LWIP_USE_MEM_HEAP_DEBUG is not set
+CONFIG_MEM_SIZE=2
+CONFIG_MEM_ALIGNMENT=64
+# end of Memory configuration
+
+#
+# Pbuf options
+#
+CONFIG_PBUF_POOL_BUFSIZE=2
+CONFIG_PBUF_POOL_SIZE=1
+# end of Pbuf options
+
+#
+# ARP
+#
+CONFIG_ARP_QUEUEING_EN=y
+# end of ARP
+
+#
+# IPV4
+#
+# CONFIG_USE_IPV4_ONLY is not set
+CONFIG_LWIP_IP4_REASSEMBLY=y
+CONFIG_LWIP_IP4_FRAG=y
+# CONFIG_LWIP_IP_FORWARD is not set
+CONFIG_IP_REASS_MAX_PBUFS=16
+# end of IPV4
+
+#
+# ICMP
+#
+CONFIG_LWIP_ICMP=y
+CONFIG_LWIP_MULTICAST_PING=y
+CONFIG_LWIP_BROADCAST_PING=y
+# end of ICMP
+
+#
+# LWIP RAW API
+#
+CONFIG_LWIP_RAW_API_EN=y
+CONFIG_LWIP_MAX_RAW_PCBS=16
+# end of LWIP RAW API
+
+#
+# DHCP
+#
+CONFIG_LWIP_DHCP_ENABLE=y
+# CONFIG_LWIP_DHCP_DOES_ARP_CHECK is not set
+# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set
+# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set
+# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
+CONFIG_LWIP_DHCP_OPTIONS_LEN=68
+CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y
+# end of DHCP
+
+#
+# AUTOIP
+#
+# CONFIG_LWIP_AUTOIP is not set
+# end of AUTOIP
+
+#
+# IGMP
+#
+CONFIG_LWIP_IGMP_EN=y
+# end of IGMP
+
+#
+# DNS
+#
+CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y
+# end of DNS
+
+#
+# UDP
+#
+CONFIG_LWIP_MAX_UDP_PCBS=16
+CONFIG_LWIP_UDP_RECVMBOX_SIZE=6
+# CONFIG_LWIP_NETBUF_RECVINFO is not set
+# end of UDP
+
+#
+# TCP
+#
+CONFIG_LWIP_TCP_WND_DEFAULT=5744
+CONFIG_LWIP_TCP_MAXRTX=12
+CONFIG_LWIP_TCP_SYNMAXRTX=12
+CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
+# CONFIG_LWIP_TCP_SACK_OUT is not set
+CONFIG_LWIP_TCP_MSS=1440
+CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744
+CONFIG_LWIP_TCP_OVERSIZE_MSS=y
+# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set
+# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set
+CONFIG_LWIP_TCP_TMR_INTERVAL=250
+CONFIG_LWIP_TCP_MSL=60000
+# CONFIG_LWIP_WND_SCALE is not set
+CONFIG_LWIP_TCP_RTO_TIME=1500
+CONFIG_LWIP_MAX_ACTIVE_TCP=16
+CONFIG_LWIP_MAX_LISTENING_TCP=16
+CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y
+CONFIG_LWIP_TCP_RECVMBOX_SIZE=6
+# end of TCP
+
+#
+# Network_Interface
+#
+CONFIG_LWIP_NETIF_API=y
+# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set
+# end of Network_Interface
+
+#
+# LOOPIF
+#
+CONFIG_LWIP_NETIF_LOOPBACK=y
+CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
+# end of LOOPIF
+
+#
+# SLIPIF
+#
+# CONFIG_LWIP_SLIP_SUPPORT is not set
+# end of SLIPIF
+
+CONFIG_LWIP_TCPIP_CORE_LOCKING=y
+
+#
+# Socket
+#
+CONFIG_LWIP_MAX_SOCKETS=10
+# CONFIG_LWIP_SO_LINGER is not set
+CONFIG_LWIP_SO_REUSE=y
+CONFIG_LWIP_SO_REUSE_RXTOALL=y
+# end of Socket
+
+# CONFIG_LWIP_STATS is not set
+
+#
+# PPP
+#
+# CONFIG_LWIP_PPP_SUPPORT is not set
+# end of PPP
+
+#
+# Checksums
+#
+# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set
+# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set
+CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y
+# end of Checksums
+
+#
+# IPV6
+#
+# CONFIG_LWIP_IPV6 is not set
+# end of IPV6
+
+CONFIG_LWIP_DEBUG=y
+# CONFIG_LWIP_DEBUG_ESP_LOG is not set
+CONFIG_LWIP_NETIF_DEBUG=y
+# CONFIG_LWIP_PBUF_DEBUG is not set
+# CONFIG_LWIP_ETHARP_DEBUG is not set
+# CONFIG_LWIP_API_LIB_DEBUG is not set
+# CONFIG_LWIP_SOCKETS_DEBUG is not set
+# CONFIG_LWIP_IP_DEBUG is not set
+# CONFIG_LWIP_ICMP_DEBUG is not set
+# CONFIG_LWIP_DHCP_STATE_DEBUG is not set
+# CONFIG_LWIP_DHCP_DEBUG is not set
+# CONFIG_LWIP_IP6_DEBUG is not set
+# CONFIG_LWIP_ICMP6_DEBUG is not set
+# CONFIG_LWIP_TCP_DEBUG is not set
+# CONFIG_LWIP_UDP_DEBUG is not set
+# CONFIG_LWIP_SNTP_DEBUG is not set
+# CONFIG_LWIP_DNS_DEBUG is not set
+# end of LWIP Configuration
+
+#
+# Tcp/ip task resource configuration
+#
+CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072
+CONFIG_LWIP_TCPIP_TASK_PRIO=6
+CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
+# end of Tcp/ip task resource configuration
+
+#
+# lwip port thread Configuration
+#
+CONFIG_LWIP_PORT_USE_RECEIVE_THREAD=y
+CONFIG_LWIP_PORT_RECEIVE_THREAD_STACKSIZE=1024
+CONFIG_LWIP_PORT_RECEIVE_THREAD_PRIORITY=5
+CONFIG_LWIP_PORT_USE_LINK_DETECT_THREAD=y
+CONFIG_LWIP_PORT_LINK_DETECT_STACKSIZE=1024
+CONFIG_LWIP_PORT_LINK_DETECT_PRIORITY=5
+CONFIG_LWIP_PORT_DHCP_THREAD=y
+CONFIG_LWIP_PORT_DHCP_STACKSIZE=2048
+CONFIG_LWIP_PORT_DHCP_PRIORITY=5
+# end of lwip port thread Configuration
+# end of LWIP Freertos Port Configuration
+
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+CONFIG_USE_TLSF=y
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+CONFIG_FSL_SDMMC_ENABLE_SDIO=y
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+CONFIG_USE_FSL_WIFI=y
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/network/wlan/configs/e2000d_aarch64_demo_wlan.config b/example/network/wlan/configs/e2000d_aarch64_demo_wlan.config
new file mode 100644
index 0000000000000000000000000000000000000000..2259334f7ed4dd64b48046632fae4d0a780da22e
--- /dev/null
+++ b/example/network/wlan/configs/e2000d_aarch64_demo_wlan.config
@@ -0,0 +1,616 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+CONFIG_ARCH_ARMV8_AARCH64=y
+# CONFIG_ARCH_ARMV8_AARCH32 is not set
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH64=y
+CONFIG_ARCH_EXECUTION_STATE="aarch64"
+
+#
+# Fpu configuration
+#
+CONFIG_ARM_NEON=y
+# end of Fpu configuration
+
+CONFIG_ARM_CRC=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_ARM_FLOAT_POINT=y
+# CONFIG_GCC_CODE_MODEL_TINY is not set
+CONFIG_GCC_CODE_MODEL_SMALL=y
+# CONFIG_GCC_CODE_MODEL_LARGE is not set
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+CONFIG_BOOT_WITH_FLUSH_CACHE=y
+# CONFIG_MMU_DEBUG_PRINTS is not set
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+# CONFIG_TARGET_E2000Q is not set
+CONFIG_TARGET_E2000D=y
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="d"
+CONFIG_SOC_CORE_NUM=2
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_E2000D_DEMO_BOARD=y
+CONFIG_BOARD_NAME="demo"
+
+#
+# IO mux configuration when board start up
+#
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_ADC_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="wlan"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_WARN is not set
+CONFIG_LOG_ERROR=y
+# CONFIG_LOG_NONE is not set
+# CONFIG_LOG_EXTRA_INFO is not set
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+CONFIG_USE_GPIO=y
+CONFIG_ENABLE_FGPIO=y
+# CONFIG_USE_ETH is not set
+# CONFIG_USE_CAN is not set
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+CONFIG_USE_SDMMC=y
+# CONFIG_ENABLE_FSDMMC is not set
+CONFIG_ENABLE_FSDIF=y
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+CONFIG_CHECK_DEPS=y
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+# CONFIG_FRAME_POINTER is not set
+CONFIG_OUTPUT_ASM_DIS=y
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+CONFIG_USE_COMPILE_CHAIN=y
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_STACK_SIZE=0x400
+CONFIG_FPU_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+# CONFIG_FREERTOS_USE_CAN is not set
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+CONFIG_USE_LWIP=y
+
+#
+# LWIP Freertos Port Configuration
+#
+
+#
+# LWIP Configuration
+#
+
+#
+# LWIP Port Configuration
+#
+# CONFIG_LWIP_FXMAC is not set
+# CONFIG_LWIP_FGMAC is not set
+CONFIG_LWIP_FSDIF=y
+# CONFIG_LWIP_RX_POLL is not set
+# end of LWIP Port Configuration
+
+# CONFIG_LWIP_NO_SYS is not set
+CONFIG_LWIP_LOCAL_HOSTNAME="phytium"
+
+#
+# LWIP_APP
+#
+CONFIG_USE_LWIP_APP_LWIPERF=y
+CONFIG_USE_LWIP_APP_PING=y
+# CONFIG_USE_LWIP_APP_TFTP is not set
+# end of LWIP_APP
+
+#
+# Memory configuration
+#
+# CONFIG_LWIP_USE_MEM_POOL is not set
+CONFIG_LWIP_USE_MEM_HEAP=y
+# CONFIG_LWIP_USE_MEM_HEAP_DEBUG is not set
+CONFIG_MEM_SIZE=2
+CONFIG_MEM_ALIGNMENT=64
+# end of Memory configuration
+
+#
+# Pbuf options
+#
+CONFIG_PBUF_POOL_BUFSIZE=2
+CONFIG_PBUF_POOL_SIZE=1
+# end of Pbuf options
+
+#
+# ARP
+#
+CONFIG_ARP_QUEUEING_EN=y
+# end of ARP
+
+#
+# IPV4
+#
+# CONFIG_USE_IPV4_ONLY is not set
+CONFIG_LWIP_IP4_REASSEMBLY=y
+CONFIG_LWIP_IP4_FRAG=y
+# CONFIG_LWIP_IP_FORWARD is not set
+CONFIG_IP_REASS_MAX_PBUFS=16
+# end of IPV4
+
+#
+# ICMP
+#
+CONFIG_LWIP_ICMP=y
+CONFIG_LWIP_MULTICAST_PING=y
+CONFIG_LWIP_BROADCAST_PING=y
+# end of ICMP
+
+#
+# LWIP RAW API
+#
+CONFIG_LWIP_RAW_API_EN=y
+CONFIG_LWIP_MAX_RAW_PCBS=16
+# end of LWIP RAW API
+
+#
+# DHCP
+#
+CONFIG_LWIP_DHCP_ENABLE=y
+# CONFIG_LWIP_DHCP_DOES_ARP_CHECK is not set
+# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set
+# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set
+# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
+CONFIG_LWIP_DHCP_OPTIONS_LEN=68
+CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y
+# end of DHCP
+
+#
+# AUTOIP
+#
+# CONFIG_LWIP_AUTOIP is not set
+# end of AUTOIP
+
+#
+# IGMP
+#
+CONFIG_LWIP_IGMP_EN=y
+# end of IGMP
+
+#
+# DNS
+#
+CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y
+# end of DNS
+
+#
+# UDP
+#
+CONFIG_LWIP_MAX_UDP_PCBS=16
+CONFIG_LWIP_UDP_RECVMBOX_SIZE=6
+# CONFIG_LWIP_NETBUF_RECVINFO is not set
+# end of UDP
+
+#
+# TCP
+#
+CONFIG_LWIP_TCP_WND_DEFAULT=5744
+CONFIG_LWIP_TCP_MAXRTX=12
+CONFIG_LWIP_TCP_SYNMAXRTX=12
+CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
+# CONFIG_LWIP_TCP_SACK_OUT is not set
+CONFIG_LWIP_TCP_MSS=1440
+CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744
+CONFIG_LWIP_TCP_OVERSIZE_MSS=y
+# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set
+# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set
+CONFIG_LWIP_TCP_TMR_INTERVAL=250
+CONFIG_LWIP_TCP_MSL=60000
+# CONFIG_LWIP_WND_SCALE is not set
+CONFIG_LWIP_TCP_RTO_TIME=1500
+CONFIG_LWIP_MAX_ACTIVE_TCP=16
+CONFIG_LWIP_MAX_LISTENING_TCP=16
+CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y
+CONFIG_LWIP_TCP_RECVMBOX_SIZE=6
+# end of TCP
+
+#
+# Network_Interface
+#
+CONFIG_LWIP_NETIF_API=y
+# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set
+# end of Network_Interface
+
+#
+# LOOPIF
+#
+CONFIG_LWIP_NETIF_LOOPBACK=y
+CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
+# end of LOOPIF
+
+#
+# SLIPIF
+#
+# CONFIG_LWIP_SLIP_SUPPORT is not set
+# end of SLIPIF
+
+CONFIG_LWIP_TCPIP_CORE_LOCKING=y
+
+#
+# Socket
+#
+CONFIG_LWIP_MAX_SOCKETS=10
+# CONFIG_LWIP_SO_LINGER is not set
+CONFIG_LWIP_SO_REUSE=y
+CONFIG_LWIP_SO_REUSE_RXTOALL=y
+# end of Socket
+
+# CONFIG_LWIP_STATS is not set
+
+#
+# PPP
+#
+# CONFIG_LWIP_PPP_SUPPORT is not set
+# end of PPP
+
+#
+# Checksums
+#
+# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set
+# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set
+CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y
+# end of Checksums
+
+#
+# IPV6
+#
+# CONFIG_LWIP_IPV6 is not set
+# end of IPV6
+
+CONFIG_LWIP_DEBUG=y
+# CONFIG_LWIP_DEBUG_ESP_LOG is not set
+CONFIG_LWIP_NETIF_DEBUG=y
+# CONFIG_LWIP_PBUF_DEBUG is not set
+# CONFIG_LWIP_ETHARP_DEBUG is not set
+# CONFIG_LWIP_API_LIB_DEBUG is not set
+# CONFIG_LWIP_SOCKETS_DEBUG is not set
+# CONFIG_LWIP_IP_DEBUG is not set
+# CONFIG_LWIP_ICMP_DEBUG is not set
+# CONFIG_LWIP_DHCP_STATE_DEBUG is not set
+# CONFIG_LWIP_DHCP_DEBUG is not set
+# CONFIG_LWIP_IP6_DEBUG is not set
+# CONFIG_LWIP_ICMP6_DEBUG is not set
+# CONFIG_LWIP_TCP_DEBUG is not set
+# CONFIG_LWIP_UDP_DEBUG is not set
+# CONFIG_LWIP_SNTP_DEBUG is not set
+# CONFIG_LWIP_DNS_DEBUG is not set
+# end of LWIP Configuration
+
+#
+# Tcp/ip task resource configuration
+#
+CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072
+CONFIG_LWIP_TCPIP_TASK_PRIO=6
+CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
+# end of Tcp/ip task resource configuration
+
+#
+# lwip port thread Configuration
+#
+CONFIG_LWIP_PORT_USE_RECEIVE_THREAD=y
+CONFIG_LWIP_PORT_RECEIVE_THREAD_STACKSIZE=1024
+CONFIG_LWIP_PORT_RECEIVE_THREAD_PRIORITY=5
+CONFIG_LWIP_PORT_USE_LINK_DETECT_THREAD=y
+CONFIG_LWIP_PORT_LINK_DETECT_STACKSIZE=1024
+CONFIG_LWIP_PORT_LINK_DETECT_PRIORITY=5
+CONFIG_LWIP_PORT_DHCP_THREAD=y
+CONFIG_LWIP_PORT_DHCP_STACKSIZE=2048
+CONFIG_LWIP_PORT_DHCP_PRIORITY=5
+# end of lwip port thread Configuration
+# end of LWIP Freertos Port Configuration
+
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+CONFIG_USE_TLSF=y
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+CONFIG_FSL_SDMMC_ENABLE_SDIO=y
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+CONFIG_USE_FSL_WIFI=y
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/network/wlan/configs/e2000q_aarch32_demo_wlan.config b/example/network/wlan/configs/e2000q_aarch32_demo_wlan.config
new file mode 100644
index 0000000000000000000000000000000000000000..75d3593db9feab2d0577b41aa6fca4f54143e2e9
--- /dev/null
+++ b/example/network/wlan/configs/e2000q_aarch32_demo_wlan.config
@@ -0,0 +1,617 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+# CONFIG_ARCH_ARMV8_AARCH64 is not set
+CONFIG_ARCH_ARMV8_AARCH32=y
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH32=y
+CONFIG_ARCH_EXECUTION_STATE="aarch32"
+
+#
+# Fpu configuration
+#
+CONFIG_ARCH_FPU=y
+# CONFIG_ARCH_FPU_VFP_V3 is not set
+CONFIG_ARCH_FPU_VFP_V4=y
+CONFIG_ARM_DPFPU32=y
+# CONFIG_ARM_FPU_ABI_SOFT is not set
+CONFIG_ARM_NEON=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
+# end of Fpu configuration
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+CONFIG_USE_AARCH64_L1_TO_AARCH32=y
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+CONFIG_TARGET_E2000Q=y
+# CONFIG_TARGET_E2000D is not set
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="q"
+CONFIG_SOC_CORE_NUM=4
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_BOARD_NAME="demo"
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+CONFIG_E2000Q_DEMO_BOARD=y
+
+#
+# IO mux configuration when board start up
+#
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="wlan"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_WARN is not set
+CONFIG_LOG_ERROR=y
+# CONFIG_LOG_NONE is not set
+# CONFIG_LOG_EXTRA_INFO is not set
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+CONFIG_USE_GPIO=y
+CONFIG_ENABLE_FGPIO=y
+# CONFIG_USE_ETH is not set
+# CONFIG_USE_CAN is not set
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+CONFIG_USE_SDMMC=y
+# CONFIG_ENABLE_FSDMMC is not set
+CONFIG_ENABLE_FSDIF=y
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+CONFIG_CHECK_DEPS=y
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+# CONFIG_FRAME_POINTER is not set
+CONFIG_OUTPUT_ASM_DIS=y
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+CONFIG_USE_COMPILE_CHAIN=y
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_SVC_STACK_SIZE=0x1000
+CONFIG_SYS_STACK_SIZE=0x1000
+CONFIG_IRQ_STACK_SIZE=0x1000
+CONFIG_ABORT_STACK_SIZE=0x1000
+CONFIG_FIQ_STACK_SIZE=0x1000
+CONFIG_UNDEF_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+# CONFIG_FREERTOS_USE_CAN is not set
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+CONFIG_USE_LWIP=y
+
+#
+# LWIP Freertos Port Configuration
+#
+
+#
+# LWIP Configuration
+#
+
+#
+# LWIP Port Configuration
+#
+# CONFIG_LWIP_FXMAC is not set
+# CONFIG_LWIP_FGMAC is not set
+CONFIG_LWIP_FSDIF=y
+# CONFIG_LWIP_RX_POLL is not set
+# end of LWIP Port Configuration
+
+# CONFIG_LWIP_NO_SYS is not set
+CONFIG_LWIP_LOCAL_HOSTNAME="phytium"
+
+#
+# LWIP_APP
+#
+CONFIG_USE_LWIP_APP_LWIPERF=y
+CONFIG_USE_LWIP_APP_PING=y
+# CONFIG_USE_LWIP_APP_TFTP is not set
+# end of LWIP_APP
+
+#
+# Memory configuration
+#
+# CONFIG_LWIP_USE_MEM_POOL is not set
+CONFIG_LWIP_USE_MEM_HEAP=y
+# CONFIG_LWIP_USE_MEM_HEAP_DEBUG is not set
+CONFIG_MEM_SIZE=2
+CONFIG_MEM_ALIGNMENT=64
+# end of Memory configuration
+
+#
+# Pbuf options
+#
+CONFIG_PBUF_POOL_BUFSIZE=2
+CONFIG_PBUF_POOL_SIZE=1
+# end of Pbuf options
+
+#
+# ARP
+#
+CONFIG_ARP_QUEUEING_EN=y
+# end of ARP
+
+#
+# IPV4
+#
+# CONFIG_USE_IPV4_ONLY is not set
+CONFIG_LWIP_IP4_REASSEMBLY=y
+CONFIG_LWIP_IP4_FRAG=y
+# CONFIG_LWIP_IP_FORWARD is not set
+CONFIG_IP_REASS_MAX_PBUFS=16
+# end of IPV4
+
+#
+# ICMP
+#
+CONFIG_LWIP_ICMP=y
+CONFIG_LWIP_MULTICAST_PING=y
+CONFIG_LWIP_BROADCAST_PING=y
+# end of ICMP
+
+#
+# LWIP RAW API
+#
+CONFIG_LWIP_RAW_API_EN=y
+CONFIG_LWIP_MAX_RAW_PCBS=16
+# end of LWIP RAW API
+
+#
+# DHCP
+#
+CONFIG_LWIP_DHCP_ENABLE=y
+# CONFIG_LWIP_DHCP_DOES_ARP_CHECK is not set
+# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set
+# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set
+# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
+CONFIG_LWIP_DHCP_OPTIONS_LEN=68
+CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y
+# end of DHCP
+
+#
+# AUTOIP
+#
+# CONFIG_LWIP_AUTOIP is not set
+# end of AUTOIP
+
+#
+# IGMP
+#
+CONFIG_LWIP_IGMP_EN=y
+# end of IGMP
+
+#
+# DNS
+#
+CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y
+# end of DNS
+
+#
+# UDP
+#
+CONFIG_LWIP_MAX_UDP_PCBS=16
+CONFIG_LWIP_UDP_RECVMBOX_SIZE=6
+# CONFIG_LWIP_NETBUF_RECVINFO is not set
+# end of UDP
+
+#
+# TCP
+#
+CONFIG_LWIP_TCP_WND_DEFAULT=5744
+CONFIG_LWIP_TCP_MAXRTX=12
+CONFIG_LWIP_TCP_SYNMAXRTX=12
+CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
+# CONFIG_LWIP_TCP_SACK_OUT is not set
+CONFIG_LWIP_TCP_MSS=1440
+CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744
+CONFIG_LWIP_TCP_OVERSIZE_MSS=y
+# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set
+# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set
+CONFIG_LWIP_TCP_TMR_INTERVAL=250
+CONFIG_LWIP_TCP_MSL=60000
+# CONFIG_LWIP_WND_SCALE is not set
+CONFIG_LWIP_TCP_RTO_TIME=1500
+CONFIG_LWIP_MAX_ACTIVE_TCP=16
+CONFIG_LWIP_MAX_LISTENING_TCP=16
+CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y
+CONFIG_LWIP_TCP_RECVMBOX_SIZE=6
+# end of TCP
+
+#
+# Network_Interface
+#
+CONFIG_LWIP_NETIF_API=y
+# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set
+# end of Network_Interface
+
+#
+# LOOPIF
+#
+CONFIG_LWIP_NETIF_LOOPBACK=y
+CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
+# end of LOOPIF
+
+#
+# SLIPIF
+#
+# CONFIG_LWIP_SLIP_SUPPORT is not set
+# end of SLIPIF
+
+CONFIG_LWIP_TCPIP_CORE_LOCKING=y
+
+#
+# Socket
+#
+CONFIG_LWIP_MAX_SOCKETS=10
+# CONFIG_LWIP_SO_LINGER is not set
+CONFIG_LWIP_SO_REUSE=y
+CONFIG_LWIP_SO_REUSE_RXTOALL=y
+# end of Socket
+
+# CONFIG_LWIP_STATS is not set
+
+#
+# PPP
+#
+# CONFIG_LWIP_PPP_SUPPORT is not set
+# end of PPP
+
+#
+# Checksums
+#
+# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set
+# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set
+CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y
+# end of Checksums
+
+#
+# IPV6
+#
+# CONFIG_LWIP_IPV6 is not set
+# end of IPV6
+
+CONFIG_LWIP_DEBUG=y
+# CONFIG_LWIP_DEBUG_ESP_LOG is not set
+CONFIG_LWIP_NETIF_DEBUG=y
+# CONFIG_LWIP_PBUF_DEBUG is not set
+# CONFIG_LWIP_ETHARP_DEBUG is not set
+# CONFIG_LWIP_API_LIB_DEBUG is not set
+# CONFIG_LWIP_SOCKETS_DEBUG is not set
+# CONFIG_LWIP_IP_DEBUG is not set
+# CONFIG_LWIP_ICMP_DEBUG is not set
+# CONFIG_LWIP_DHCP_STATE_DEBUG is not set
+# CONFIG_LWIP_DHCP_DEBUG is not set
+# CONFIG_LWIP_IP6_DEBUG is not set
+# CONFIG_LWIP_ICMP6_DEBUG is not set
+# CONFIG_LWIP_TCP_DEBUG is not set
+# CONFIG_LWIP_UDP_DEBUG is not set
+# CONFIG_LWIP_SNTP_DEBUG is not set
+# CONFIG_LWIP_DNS_DEBUG is not set
+# end of LWIP Configuration
+
+#
+# Tcp/ip task resource configuration
+#
+CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072
+CONFIG_LWIP_TCPIP_TASK_PRIO=6
+CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
+# end of Tcp/ip task resource configuration
+
+#
+# lwip port thread Configuration
+#
+CONFIG_LWIP_PORT_USE_RECEIVE_THREAD=y
+CONFIG_LWIP_PORT_RECEIVE_THREAD_STACKSIZE=1024
+CONFIG_LWIP_PORT_RECEIVE_THREAD_PRIORITY=5
+CONFIG_LWIP_PORT_USE_LINK_DETECT_THREAD=y
+CONFIG_LWIP_PORT_LINK_DETECT_STACKSIZE=1024
+CONFIG_LWIP_PORT_LINK_DETECT_PRIORITY=5
+CONFIG_LWIP_PORT_DHCP_THREAD=y
+CONFIG_LWIP_PORT_DHCP_STACKSIZE=2048
+CONFIG_LWIP_PORT_DHCP_PRIORITY=5
+# end of lwip port thread Configuration
+# end of LWIP Freertos Port Configuration
+
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+CONFIG_USE_TLSF=y
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+CONFIG_FSL_SDMMC_ENABLE_SDIO=y
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+CONFIG_USE_FSL_WIFI=y
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/network/wlan/configs/e2000q_aarch64_demo_wlan.config b/example/network/wlan/configs/e2000q_aarch64_demo_wlan.config
new file mode 100644
index 0000000000000000000000000000000000000000..ef99dceb47c42bd4811d0979a06587d041c54395
--- /dev/null
+++ b/example/network/wlan/configs/e2000q_aarch64_demo_wlan.config
@@ -0,0 +1,615 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+CONFIG_ARCH_ARMV8_AARCH64=y
+# CONFIG_ARCH_ARMV8_AARCH32 is not set
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH64=y
+CONFIG_ARCH_EXECUTION_STATE="aarch64"
+
+#
+# Fpu configuration
+#
+CONFIG_ARM_NEON=y
+# end of Fpu configuration
+
+CONFIG_ARM_CRC=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_ARM_FLOAT_POINT=y
+# CONFIG_GCC_CODE_MODEL_TINY is not set
+CONFIG_GCC_CODE_MODEL_SMALL=y
+# CONFIG_GCC_CODE_MODEL_LARGE is not set
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+CONFIG_BOOT_WITH_FLUSH_CACHE=y
+# CONFIG_MMU_DEBUG_PRINTS is not set
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+CONFIG_TARGET_E2000Q=y
+# CONFIG_TARGET_E2000D is not set
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="q"
+CONFIG_SOC_CORE_NUM=4
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_BOARD_NAME="demo"
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+CONFIG_E2000Q_DEMO_BOARD=y
+
+#
+# IO mux configuration when board start up
+#
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="wlan"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_WARN is not set
+CONFIG_LOG_ERROR=y
+# CONFIG_LOG_NONE is not set
+# CONFIG_LOG_EXTRA_INFO is not set
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+CONFIG_USE_GPIO=y
+CONFIG_ENABLE_FGPIO=y
+# CONFIG_USE_ETH is not set
+# CONFIG_USE_CAN is not set
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+CONFIG_USE_SDMMC=y
+# CONFIG_ENABLE_FSDMMC is not set
+CONFIG_ENABLE_FSDIF=y
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+CONFIG_CHECK_DEPS=y
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+# CONFIG_FRAME_POINTER is not set
+CONFIG_OUTPUT_ASM_DIS=y
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+CONFIG_USE_COMPILE_CHAIN=y
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_STACK_SIZE=0x400
+CONFIG_FPU_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+# CONFIG_FREERTOS_USE_CAN is not set
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+CONFIG_USE_LWIP=y
+
+#
+# LWIP Freertos Port Configuration
+#
+
+#
+# LWIP Configuration
+#
+
+#
+# LWIP Port Configuration
+#
+# CONFIG_LWIP_FXMAC is not set
+# CONFIG_LWIP_FGMAC is not set
+CONFIG_LWIP_FSDIF=y
+# CONFIG_LWIP_RX_POLL is not set
+# end of LWIP Port Configuration
+
+# CONFIG_LWIP_NO_SYS is not set
+CONFIG_LWIP_LOCAL_HOSTNAME="phytium"
+
+#
+# LWIP_APP
+#
+CONFIG_USE_LWIP_APP_LWIPERF=y
+CONFIG_USE_LWIP_APP_PING=y
+# CONFIG_USE_LWIP_APP_TFTP is not set
+# end of LWIP_APP
+
+#
+# Memory configuration
+#
+# CONFIG_LWIP_USE_MEM_POOL is not set
+CONFIG_LWIP_USE_MEM_HEAP=y
+# CONFIG_LWIP_USE_MEM_HEAP_DEBUG is not set
+CONFIG_MEM_SIZE=2
+CONFIG_MEM_ALIGNMENT=64
+# end of Memory configuration
+
+#
+# Pbuf options
+#
+CONFIG_PBUF_POOL_BUFSIZE=2
+CONFIG_PBUF_POOL_SIZE=1
+# end of Pbuf options
+
+#
+# ARP
+#
+CONFIG_ARP_QUEUEING_EN=y
+# end of ARP
+
+#
+# IPV4
+#
+# CONFIG_USE_IPV4_ONLY is not set
+CONFIG_LWIP_IP4_REASSEMBLY=y
+CONFIG_LWIP_IP4_FRAG=y
+# CONFIG_LWIP_IP_FORWARD is not set
+CONFIG_IP_REASS_MAX_PBUFS=16
+# end of IPV4
+
+#
+# ICMP
+#
+CONFIG_LWIP_ICMP=y
+CONFIG_LWIP_MULTICAST_PING=y
+CONFIG_LWIP_BROADCAST_PING=y
+# end of ICMP
+
+#
+# LWIP RAW API
+#
+CONFIG_LWIP_RAW_API_EN=y
+CONFIG_LWIP_MAX_RAW_PCBS=16
+# end of LWIP RAW API
+
+#
+# DHCP
+#
+CONFIG_LWIP_DHCP_ENABLE=y
+# CONFIG_LWIP_DHCP_DOES_ARP_CHECK is not set
+# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set
+# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set
+# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
+CONFIG_LWIP_DHCP_OPTIONS_LEN=68
+CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y
+# end of DHCP
+
+#
+# AUTOIP
+#
+# CONFIG_LWIP_AUTOIP is not set
+# end of AUTOIP
+
+#
+# IGMP
+#
+CONFIG_LWIP_IGMP_EN=y
+# end of IGMP
+
+#
+# DNS
+#
+CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y
+# end of DNS
+
+#
+# UDP
+#
+CONFIG_LWIP_MAX_UDP_PCBS=16
+CONFIG_LWIP_UDP_RECVMBOX_SIZE=6
+# CONFIG_LWIP_NETBUF_RECVINFO is not set
+# end of UDP
+
+#
+# TCP
+#
+CONFIG_LWIP_TCP_WND_DEFAULT=5744
+CONFIG_LWIP_TCP_MAXRTX=12
+CONFIG_LWIP_TCP_SYNMAXRTX=12
+CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
+# CONFIG_LWIP_TCP_SACK_OUT is not set
+CONFIG_LWIP_TCP_MSS=1440
+CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744
+CONFIG_LWIP_TCP_OVERSIZE_MSS=y
+# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set
+# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set
+CONFIG_LWIP_TCP_TMR_INTERVAL=250
+CONFIG_LWIP_TCP_MSL=60000
+# CONFIG_LWIP_WND_SCALE is not set
+CONFIG_LWIP_TCP_RTO_TIME=1500
+CONFIG_LWIP_MAX_ACTIVE_TCP=16
+CONFIG_LWIP_MAX_LISTENING_TCP=16
+CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y
+CONFIG_LWIP_TCP_RECVMBOX_SIZE=6
+# end of TCP
+
+#
+# Network_Interface
+#
+CONFIG_LWIP_NETIF_API=y
+# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set
+# end of Network_Interface
+
+#
+# LOOPIF
+#
+CONFIG_LWIP_NETIF_LOOPBACK=y
+CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
+# end of LOOPIF
+
+#
+# SLIPIF
+#
+# CONFIG_LWIP_SLIP_SUPPORT is not set
+# end of SLIPIF
+
+CONFIG_LWIP_TCPIP_CORE_LOCKING=y
+
+#
+# Socket
+#
+CONFIG_LWIP_MAX_SOCKETS=10
+# CONFIG_LWIP_SO_LINGER is not set
+CONFIG_LWIP_SO_REUSE=y
+CONFIG_LWIP_SO_REUSE_RXTOALL=y
+# end of Socket
+
+# CONFIG_LWIP_STATS is not set
+
+#
+# PPP
+#
+# CONFIG_LWIP_PPP_SUPPORT is not set
+# end of PPP
+
+#
+# Checksums
+#
+# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set
+# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set
+CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y
+# end of Checksums
+
+#
+# IPV6
+#
+# CONFIG_LWIP_IPV6 is not set
+# end of IPV6
+
+CONFIG_LWIP_DEBUG=y
+# CONFIG_LWIP_DEBUG_ESP_LOG is not set
+CONFIG_LWIP_NETIF_DEBUG=y
+# CONFIG_LWIP_PBUF_DEBUG is not set
+# CONFIG_LWIP_ETHARP_DEBUG is not set
+# CONFIG_LWIP_API_LIB_DEBUG is not set
+# CONFIG_LWIP_SOCKETS_DEBUG is not set
+# CONFIG_LWIP_IP_DEBUG is not set
+# CONFIG_LWIP_ICMP_DEBUG is not set
+# CONFIG_LWIP_DHCP_STATE_DEBUG is not set
+# CONFIG_LWIP_DHCP_DEBUG is not set
+# CONFIG_LWIP_IP6_DEBUG is not set
+# CONFIG_LWIP_ICMP6_DEBUG is not set
+# CONFIG_LWIP_TCP_DEBUG is not set
+# CONFIG_LWIP_UDP_DEBUG is not set
+# CONFIG_LWIP_SNTP_DEBUG is not set
+# CONFIG_LWIP_DNS_DEBUG is not set
+# end of LWIP Configuration
+
+#
+# Tcp/ip task resource configuration
+#
+CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072
+CONFIG_LWIP_TCPIP_TASK_PRIO=6
+CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
+# end of Tcp/ip task resource configuration
+
+#
+# lwip port thread Configuration
+#
+CONFIG_LWIP_PORT_USE_RECEIVE_THREAD=y
+CONFIG_LWIP_PORT_RECEIVE_THREAD_STACKSIZE=1024
+CONFIG_LWIP_PORT_RECEIVE_THREAD_PRIORITY=5
+CONFIG_LWIP_PORT_USE_LINK_DETECT_THREAD=y
+CONFIG_LWIP_PORT_LINK_DETECT_STACKSIZE=1024
+CONFIG_LWIP_PORT_LINK_DETECT_PRIORITY=5
+CONFIG_LWIP_PORT_DHCP_THREAD=y
+CONFIG_LWIP_PORT_DHCP_STACKSIZE=2048
+CONFIG_LWIP_PORT_DHCP_PRIORITY=5
+# end of lwip port thread Configuration
+# end of LWIP Freertos Port Configuration
+
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+CONFIG_USE_TLSF=y
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+CONFIG_FSL_SDMMC_ENABLE_SDIO=y
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+CONFIG_USE_FSL_WIFI=y
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/network/wlan/figs/connect_ap.png b/example/network/wlan/figs/connect_ap.png
new file mode 100644
index 0000000000000000000000000000000000000000..0f01807bcd16d129b8581d6536d10d320072768b
Binary files /dev/null and b/example/network/wlan/figs/connect_ap.png differ
diff --git a/example/network/wlan/figs/connect_marvel8801.jpeg b/example/network/wlan/figs/connect_marvel8801.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..ecfc819eb6d87dc21c594c2c86373f1ebb0db07d
Binary files /dev/null and b/example/network/wlan/figs/connect_marvel8801.jpeg differ
diff --git a/example/network/wlan/figs/connect_to_ap.jpeg b/example/network/wlan/figs/connect_to_ap.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..88da04dc4cb463972fa558d7f6551cfb981d97bd
Binary files /dev/null and b/example/network/wlan/figs/connect_to_ap.jpeg differ
diff --git a/example/network/wlan/figs/marvell8801_sdio_wifi.jpeg b/example/network/wlan/figs/marvell8801_sdio_wifi.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..4089d14a72eba4c87c5ce603866c602186b8b9de
Binary files /dev/null and b/example/network/wlan/figs/marvell8801_sdio_wifi.jpeg differ
diff --git a/example/network/wlan/figs/mobile_ap_settings.jpeg b/example/network/wlan/figs/mobile_ap_settings.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..c77518d9805a9ef364b0bff3f683b78aa06ac82f
Binary files /dev/null and b/example/network/wlan/figs/mobile_ap_settings.jpeg differ
diff --git a/example/network/wlan/figs/ping_station.png b/example/network/wlan/figs/ping_station.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd251f933fcd10525e4f2133f26bfbd45c204d6d
Binary files /dev/null and b/example/network/wlan/figs/ping_station.png differ
diff --git a/example/network/wlan/figs/public_ip.png b/example/network/wlan/figs/public_ip.png
new file mode 100644
index 0000000000000000000000000000000000000000..6a5a2595c52a002ea2adcc69355592a396a7b90d
Binary files /dev/null and b/example/network/wlan/figs/public_ip.png differ
diff --git a/example/network/wlan/figs/start_ap_in_board.png b/example/network/wlan/figs/start_ap_in_board.png
new file mode 100644
index 0000000000000000000000000000000000000000..62acfe7babc2ee99e37a33c64cb64c1cce6475a4
Binary files /dev/null and b/example/network/wlan/figs/start_ap_in_board.png differ
diff --git a/example/network/wlan/figs/station_scan_ap.png b/example/network/wlan/figs/station_scan_ap.png
new file mode 100644
index 0000000000000000000000000000000000000000..8f5d5bf5fdd09d3dffd2933009e461ed11bcd72f
Binary files /dev/null and b/example/network/wlan/figs/station_scan_ap.png differ
diff --git a/example/peripheral/sdio/inc/sd_read_write.h b/example/network/wlan/inc/wlan_ap_config.h
similarity index 83%
rename from example/peripheral/sdio/inc/sd_read_write.h
rename to example/network/wlan/inc/wlan_ap_config.h
index a5c2ea3d433e4eb0728e19fa7e5d012a66768033..be0126e5a6b1714a026c851e9d4bab5e1de1eec5 100644
--- a/example/peripheral/sdio/inc/sd_read_write.h
+++ b/example/network/wlan/inc/wlan_ap_config.h
@@ -11,18 +11,18 @@
* See the Phytium Public License for more details.
*
*
- * FilePath: sd_read_write.h
+ * FilePath: wlan_ap_config.h
* Date: 2022-07-18 16:43:35
* LastEditTime: 2022-07-18 16:43:35
- * Description: This file is for providing some sd apis.
+ * Description: This file is for providing some sfud apis.
*
* Modify History:
* Ver Who Date Changes
* ----- ------ -------- --------------------------------------
- * 1.0 zhugengyu 2022/8/26 first commit
+ * 1.0 zhugengyu 2023/10/19 first commit
*/
-#ifndef SD_READ_WRITE_H
-#define SD_READ_WRITE_H
+#ifndef WLAN_AP_CONFIG_H
+#define WLAN_AP_CONFIG_H
#ifdef __cplusplus
extern "C"
@@ -38,9 +38,9 @@ extern "C"
/***************** Macros (Inline Functions) Definitions *********************/
/************************** Function Prototypes ******************************/
+BaseType_t FFreeRTOSStartAP(void);
/*****************************************************************************/
-BaseType_t FFreeRTOSSdWriteRead(u32 slot_id, boolean is_emmc, u32 start_blk, u32 blk_num);
#ifdef __cplusplus
}
diff --git a/example/network/wlan/inc/wlan_common.h b/example/network/wlan/inc/wlan_common.h
new file mode 100644
index 0000000000000000000000000000000000000000..b749bd2979b4bbce807d18b43cf89817f65d24c1
--- /dev/null
+++ b/example/network/wlan/inc/wlan_common.h
@@ -0,0 +1,230 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: wlan_common.h
+ * Date: 2022-07-18 16:43:35
+ * LastEditTime: 2022-07-18 16:43:35
+ * Description: This file is for providing some sfud apis.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 zhugengyu 2023/10/19 first commit
+ */
+#ifndef WLAN_AP_COMMON_H
+#define WLAN_AP_COMMON_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/***************************** Include Files *********************************/
+#include "fsl_wifi_config.h"
+
+/************************** Constant Definitions *****************************/
+#define FWLAN_WIFI_SSID_LENGTH 32U
+#define FWLAN_WIFI_PASSWORD_MIN_LEN 8
+#define FWLAN_WIFI_PASSWORD_LENGTH 63
+#define FWLAN_WIFI_SECURITY_LENGTH 63U
+
+/* IP Address of Wi-Fi interface in AP (Access Point) mode */
+#ifndef FWLAN_WIFI_AP_IP_ADDR
+#define FWLAN_WIFI_AP_IP_ADDR "192.168.1.1"
+#endif /* FWLAN_WIFI_AP_IP_ADDR */
+
+/* Common Wi-Fi parameters */
+#ifndef FWLAN_WIFI_SSID
+#define FWLAN_WIFI_SSID "phytium_wifi"
+#endif
+
+#ifndef FWLAN_WIFI_PASSWORD
+#define FWLAN_WIFI_PASSWORD "12345678"
+#endif
+
+#ifndef FWLAN_WIFI_SECURITY
+#define FWLAN_WIFI_SECURITY "WPA2"
+#endif
+
+#define FWLAN_WIFI_NETWORK_LABEL "phytium_wifi"
+
+typedef void (*FWlanLinkLostCb)(bool linkState);
+
+typedef enum
+{
+ FWLAN_RET_SUCCESS,
+ FWLAN_RET_FAIL,
+ FWLAN_NOT_FOUND,
+ FWLAN_AUTH_FAILED,
+ FWLAN_ADDR_FAILED,
+ FWLAN_NOT_CONNECTED,
+ FWLAN_NOT_READY,
+ FWLAN_TIMEOUT,
+ FWLAN_BAD_PARAM,
+} FWlanRetStatus;
+
+typedef enum
+{
+ /* Used when the user only knows SSID and password. This option should be used
+ * for WPA2 security and lower. */
+ FWLAN_SECURITY_WILDCARD,
+ /* Use WPA3 SAE security */
+ FWLAN_SECURITY_WPA3_SAE,
+} FWlanSecurityType;
+
+/************************** Variable Definitions *****************************/
+
+/***************** Macros (Inline Functions) Definitions *********************/
+
+/************************** Function Prototypes ******************************/
+
+/**
+ * @brief Initialize Wi-Fi driver and WPL layer.
+ * Create an internal Event structure used for WPL layer (blocking API).
+ * Set WPL layer state to WLAN_STATE_INITIALIZED.
+ * Should be the first function called from the WPL layer API.
+ *
+ * @return FWLAN_RET_SUCCESS Wi-Fi driver and WPL layer initialized successfully.
+ */
+FWlanRetStatus FWlanInit(void);
+
+/**
+ * @brief Start Wi-Fi driver and register an application link state callback.
+ * Set WPL layer state to WLAN_STATE_STARTED.
+ * FWlanStart should be called only after FWlanInit was successfully performed.
+ *
+ * @param callbackFunction Function which will be called from WPL layer in order to
+ * notify upper application that Wi-Fi link is lost or re/established.
+ *
+ * @return FWLAN_RET_SUCCESS Wi-Fi driver started successfully.
+ */
+FWlanRetStatus FWlanStart(FWlanLinkLostCb callbackFunction);
+
+/**
+ * @brief Stop Wi-Fi driver.
+ * Set WPL layer state to WLAN_STATE_NOT_INITIALIZED.
+ * FWlanStop should be called only after FWlanStart was successfully performed.
+ *
+ * @return FWLAN_RET_SUCCESS Wi-Fi driver is stopped.
+ */
+FWlanRetStatus FWlanStop(void);
+
+/**
+ * @brief Create an AP (Access Point) network profile and start Wi-Fi AP interface based on this profile.
+ * If AP mode is started successfully, start a DHCP server.
+ * If everything goes well, other devices can connect to this network.
+ * If anything goes wrong, provided network profile is deleted, AP and DHCP are stopped.
+ * FWlanStartAP fails if AP interface is already up.
+ * FWlanStartAP should be called only after FWlanStart was successfully performed.
+ *
+ * @param ssid Name of the AP network to be created.
+ * @param password Password of the AP network to be created.
+ * @param chan Channel of the AP network to be created.
+ *
+ * @return FWLAN_RET_SUCCESS Network profile created, Wi-Fi AP interface up, DHCP server running.
+ */
+FWlanRetStatus FWlanStartAP(char *ssid, char *password, int chan);
+
+/**
+ * @brief Stop DHCP server, stop Wi-Fi AP (Access Point) interface and delete AP network profile.
+ * FWlanStopAP should be called only after FWlanStartAP was successfully performed.
+ *
+ * @return FWLAN_RET_SUCCESS DHCP server stopped, AP interface down, AP network profile deleted.
+ */
+FWlanRetStatus FWlanStopAP(void);
+
+/**
+ * @brief Scan for nearby Wi-Fi networks.
+ Print available networks information and store them in an internal buffer in JSON fomrat.
+ The returned buffer is dynamically allocated, caller is responsible for deallocation.
+ * FWlanScan should be called only after FWlanStart was successfully performed.
+ *
+ * @return Pointer to buffer with scan results.
+ */
+char *FWlanScan(void);
+
+/**
+ * @brief Create and save a new STA (Station) network profile.
+ * This STA network profile can be used in future (FWlanRemoveNetwork / FWlanJoin) calls based on its label.
+ * FWlanAddNetwork should be called only after FWlanStart was successfully performed.
+ *
+ * @param ssid Name of the STA network to be created.
+ * @param password Password of the STA network to be created.
+ * @param label Alias for the network to be added. A network may be referred by its label.
+ * @param security Prefered security type. Refer to FWlanSecurityType for list of options.
+ *
+ * @return FWLAN_RET_SUCCESS New STA network profile was successfully saved.
+ */
+FWlanRetStatus FWlanAddNetworkWithSecurity(char *ssid, char *password, char *label, FWlanSecurityType security);
+
+/**
+ * @brief Create and save a new STA (Station) network profile.
+ * This STA network profile can be used in future (FWlanRemoveNetwork / FWlanJoin) calls based on its label.
+ * FWlanAddNetwork should be called only after FWlanStart was successfully performed.
+ *
+ * @param ssid Name of the STA network to be created.
+ * @param password Password of the STA network to be created.
+ * @param label Alias for the network to be added. A network may be referred by its label.
+ *
+ * @return FWLAN_RET_SUCCESS New STA network profile was successfully saved.
+ */
+FWlanRetStatus FWlanAddNetwork(char *ssid, char *password, char *label);
+
+/**
+ * @brief Delete a previously added STA (Station) network profile.
+ * The profile to be deleted is referred by its label and should have been previously added using
+ * FWlanAddNetwork. FWlanRemoveNetwork should be called only after FWlanAddNetwork was successfully performed (for this
+ * network).
+ *
+ * @param label Alias for the network to be deleted. Label was set by FWlanAddNetwork.
+ *
+ * @return FWLAN_RET_SUCCESS The profile network is deleted.
+ */
+FWlanRetStatus FWlanRemoveNetwork(char *label);
+
+/**
+ * @brief Connect to a Wi-Fi network.
+ * Wi-Fi network is chosen by a STA network label.
+ * The Wi-Fi network to connect to is referred by its label and should have been previously added using
+ * FWlanAddNetwork. FWlanJoin should be called only after FWlanAddNetwork was successfully performed (for this network).
+ *
+ * @param label Alias for the network to connect to. Label was set by FWlanAddNetwork.
+ *
+ * @return FWLAN_RET_SUCCESS Device joined the Wi-Fi network using its STA interface.
+ */
+FWlanRetStatus FWlanJoin(char *label);
+
+/**
+ * @brief Disconnect from currently connected Wi-Fi network.
+ * FWlanLeave should be called only after FWlanJoin was successfully performed.
+ *
+ * @return FWLAN_RET_SUCCESS Device left the Wi-Fi network it was connected to.
+ */
+FWlanRetStatus FWlanLeave(void);
+
+/**
+ * @brief Get IP for AP interface or STA interface.
+ *
+ * @param ip Pointer where IP should be stored.
+ * @param client 0 for AP, 1 for STA.
+ *
+ * @return FWLAN_RET_SUCCESS if the IP was successfully retrieved.
+ */
+FWlanRetStatus FWlanGetIP(char *ip, int client);
+/*****************************************************************************/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
\ No newline at end of file
diff --git a/example/network/wlan/inc/wlan_station_connect.h b/example/network/wlan/inc/wlan_station_connect.h
new file mode 100644
index 0000000000000000000000000000000000000000..40888e871ff2f92a7ebd290e56c93ec88da5a70f
--- /dev/null
+++ b/example/network/wlan/inc/wlan_station_connect.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: wlan_station_connect.h
+ * Date: 2022-07-18 16:43:35
+ * LastEditTime: 2022-07-18 16:43:35
+ * Description: This file is for providing some sfud apis.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 zhugengyu 2023/10/19 first commit
+ */
+#ifndef WLAN_STATION_CONNECT_H
+#define WLAN_STATION_CONNECT_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/***************************** Include Files *********************************/
+
+/************************** Constant Definitions *****************************/
+
+/************************** Variable Definitions *****************************/
+
+/***************** Macros (Inline Functions) Definitions *********************/
+
+/************************** Function Prototypes ******************************/
+BaseType_t FFreeRTOSWlanStationConnectInit(const char *usr_ssid, const char *usr_password);
+BaseType_t FFreeRTOSWlanStationPing(const char *usr_remote_ip);
+
+/*****************************************************************************/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
\ No newline at end of file
diff --git a/third-party/sdmmc-1.0/port/fsdio/fsdio_port.h b/example/network/wlan/inc/wlan_station_scan.h
similarity index 51%
rename from third-party/sdmmc-1.0/port/fsdio/fsdio_port.h
rename to example/network/wlan/inc/wlan_station_scan.h
index e6e047dfbf8dcf87bb6b5c936575426c207f2809..d9666843c8d0f2462c0a0beb58ec548546d9c5c0 100644
--- a/third-party/sdmmc-1.0/port/fsdio/fsdio_port.h
+++ b/example/network/wlan/inc/wlan_station_scan.h
@@ -1,4 +1,3 @@
-
/*
* Copyright : (C) 2022 Phytium Information Technology, Inc.
* All Rights Reserved.
@@ -12,34 +11,36 @@
* See the Phytium Public License for more details.
*
*
- * FilePath: fsdio_port.h
- * Date: 2022-02-10 14:53:44
- * LastEditTime: 2022-02-25 11:46:22
- * Description: This files is for sdio port
+ * FilePath: wlan_station_scan.h
+ * Date: 2022-07-18 16:43:35
+ * LastEditTime: 2022-07-18 16:43:35
+ * Description: This file is for providing some sfud apis.
*
* Modify History:
* Ver Who Date Changes
* ----- ------ -------- --------------------------------------
- * 1.0 zhugengyu 2022/12/7 init commit
+ * 1.0 zhugengyu 2023/10/19 first commit
*/
-
-#ifndef FSDIO_PORT_H
-#define FSDIO_PORT_H
-
-#include "sdmmc_host_os.h"
+#ifndef WLAN_STATION_SCAN_H
+#define WLAN_STATION_SCAN_H
#ifdef __cplusplus
extern "C"
{
#endif
-sdmmc_err_t fsdio_host_init(sdmmc_host_instance_t *const instance, const sdmmc_host_config_t *config);
+/***************************** Include Files *********************************/
+
+/************************** Constant Definitions *****************************/
+
+/************************** Variable Definitions *****************************/
-sdmmc_err_t fsdio_host_deinit(sdmmc_host_instance_t *const instance);
+/***************** Macros (Inline Functions) Definitions *********************/
-sdmmc_err_t fsdio_host_lock(sdmmc_host_t *const host);
+/************************** Function Prototypes ******************************/
+BaseType_t FFreeRTOSWlanStationScanInit(void);
-void fsdio_host_unlock(sdmmc_host_t *const host);
+/*****************************************************************************/
#ifdef __cplusplus
}
diff --git a/example/network/wlan/main.c b/example/network/wlan/main.c
new file mode 100644
index 0000000000000000000000000000000000000000..4e366cf57fb7f566dd6205473c2bc824a7de825d
--- /dev/null
+++ b/example/network/wlan/main.c
@@ -0,0 +1,49 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: main.c
+ * Date: 2022-02-24 13:42:19
+ * LastEditTime: 2022-03-21 17:02:53
+ * Description: This file is for providing a template main.c file when creating new freertos examples.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 zhugengyu 2023/10/19 init commit
+ */
+#include
+#include
+#include "FreeRTOS.h"
+#include "task.h"
+#include "ftypes.h"
+#include "shell.h"
+#include "shell_port.h"
+
+int main()
+{
+ BaseType_t xReturn = pdPASS;
+
+ xReturn = LSUserShellTask();
+ if (xReturn != pdPASS)
+ {
+ goto FAIL_EXIT;
+ }
+
+ vTaskStartScheduler(); /* 启动任务,开启调度 */
+
+ while (1); /* 正常不会执行到这里 */
+
+FAIL_EXIT:
+ printf("Failed,the xReturn value is 0x%x. \r\n", xReturn);
+ return 0;
+}
\ No newline at end of file
diff --git a/example/network/wlan/makefile b/example/network/wlan/makefile
new file mode 100644
index 0000000000000000000000000000000000000000..cd273bdc58455264201efa4964748c03f73a58c1
--- /dev/null
+++ b/example/network/wlan/makefile
@@ -0,0 +1,29 @@
+PROJECT_DIR = $(CURDIR)
+FREERTOS_SDK_DIR = $(CURDIR)/../../..
+
+
+# # 设置启动镜像名
+BOOT_IMG_NAME ?= freertos
+
+USER_CSRC := main.c
+USER_CSRC += $(wildcard src/*.c)
+
+USER_ASRC := #添加汇编代码
+USER_CXXSRC := #添加C++代码
+
+#添加 .h 文件所在目录
+USER_INCLUDE := $(PROJECT_DIR) \
+ $(PROJECT_DIR)/inc
+
+
+include $(FREERTOS_SDK_DIR)/tools/makeall.mk
+
+USR_BOOT_DIR ?= /mnt/d/tftboot
+
+image:
+ $(MAKE) all -j
+ @cp ./$(IMAGE_OUT_NAME).elf $(USR_BOOT_DIR)/$(BOOT_IMG_NAME).elf
+ifdef CONFIG_OUTPUT_BINARY
+ @cp ./$(IMAGE_OUT_NAME).bin $(USR_BOOT_DIR)/$(BOOT_IMG_NAME).bin
+endif
+ @ls $(USR_BOOT_DIR)/$(BOOT_IMG_NAME).* -l
\ No newline at end of file
diff --git a/example/network/wlan/sdkconfig b/example/network/wlan/sdkconfig
new file mode 100644
index 0000000000000000000000000000000000000000..ef99dceb47c42bd4811d0979a06587d041c54395
--- /dev/null
+++ b/example/network/wlan/sdkconfig
@@ -0,0 +1,615 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+CONFIG_ARCH_ARMV8_AARCH64=y
+# CONFIG_ARCH_ARMV8_AARCH32 is not set
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH64=y
+CONFIG_ARCH_EXECUTION_STATE="aarch64"
+
+#
+# Fpu configuration
+#
+CONFIG_ARM_NEON=y
+# end of Fpu configuration
+
+CONFIG_ARM_CRC=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_ARM_FLOAT_POINT=y
+# CONFIG_GCC_CODE_MODEL_TINY is not set
+CONFIG_GCC_CODE_MODEL_SMALL=y
+# CONFIG_GCC_CODE_MODEL_LARGE is not set
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+CONFIG_BOOT_WITH_FLUSH_CACHE=y
+# CONFIG_MMU_DEBUG_PRINTS is not set
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+CONFIG_TARGET_E2000Q=y
+# CONFIG_TARGET_E2000D is not set
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="q"
+CONFIG_SOC_CORE_NUM=4
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_BOARD_NAME="demo"
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+CONFIG_E2000Q_DEMO_BOARD=y
+
+#
+# IO mux configuration when board start up
+#
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="wlan"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_WARN is not set
+CONFIG_LOG_ERROR=y
+# CONFIG_LOG_NONE is not set
+# CONFIG_LOG_EXTRA_INFO is not set
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+CONFIG_USE_GPIO=y
+CONFIG_ENABLE_FGPIO=y
+# CONFIG_USE_ETH is not set
+# CONFIG_USE_CAN is not set
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+CONFIG_USE_SDMMC=y
+# CONFIG_ENABLE_FSDMMC is not set
+CONFIG_ENABLE_FSDIF=y
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+CONFIG_CHECK_DEPS=y
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+# CONFIG_FRAME_POINTER is not set
+CONFIG_OUTPUT_ASM_DIS=y
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+CONFIG_USE_COMPILE_CHAIN=y
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_STACK_SIZE=0x400
+CONFIG_FPU_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+# CONFIG_FREERTOS_USE_CAN is not set
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+CONFIG_USE_LWIP=y
+
+#
+# LWIP Freertos Port Configuration
+#
+
+#
+# LWIP Configuration
+#
+
+#
+# LWIP Port Configuration
+#
+# CONFIG_LWIP_FXMAC is not set
+# CONFIG_LWIP_FGMAC is not set
+CONFIG_LWIP_FSDIF=y
+# CONFIG_LWIP_RX_POLL is not set
+# end of LWIP Port Configuration
+
+# CONFIG_LWIP_NO_SYS is not set
+CONFIG_LWIP_LOCAL_HOSTNAME="phytium"
+
+#
+# LWIP_APP
+#
+CONFIG_USE_LWIP_APP_LWIPERF=y
+CONFIG_USE_LWIP_APP_PING=y
+# CONFIG_USE_LWIP_APP_TFTP is not set
+# end of LWIP_APP
+
+#
+# Memory configuration
+#
+# CONFIG_LWIP_USE_MEM_POOL is not set
+CONFIG_LWIP_USE_MEM_HEAP=y
+# CONFIG_LWIP_USE_MEM_HEAP_DEBUG is not set
+CONFIG_MEM_SIZE=2
+CONFIG_MEM_ALIGNMENT=64
+# end of Memory configuration
+
+#
+# Pbuf options
+#
+CONFIG_PBUF_POOL_BUFSIZE=2
+CONFIG_PBUF_POOL_SIZE=1
+# end of Pbuf options
+
+#
+# ARP
+#
+CONFIG_ARP_QUEUEING_EN=y
+# end of ARP
+
+#
+# IPV4
+#
+# CONFIG_USE_IPV4_ONLY is not set
+CONFIG_LWIP_IP4_REASSEMBLY=y
+CONFIG_LWIP_IP4_FRAG=y
+# CONFIG_LWIP_IP_FORWARD is not set
+CONFIG_IP_REASS_MAX_PBUFS=16
+# end of IPV4
+
+#
+# ICMP
+#
+CONFIG_LWIP_ICMP=y
+CONFIG_LWIP_MULTICAST_PING=y
+CONFIG_LWIP_BROADCAST_PING=y
+# end of ICMP
+
+#
+# LWIP RAW API
+#
+CONFIG_LWIP_RAW_API_EN=y
+CONFIG_LWIP_MAX_RAW_PCBS=16
+# end of LWIP RAW API
+
+#
+# DHCP
+#
+CONFIG_LWIP_DHCP_ENABLE=y
+# CONFIG_LWIP_DHCP_DOES_ARP_CHECK is not set
+# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set
+# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set
+# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
+CONFIG_LWIP_DHCP_OPTIONS_LEN=68
+CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y
+# end of DHCP
+
+#
+# AUTOIP
+#
+# CONFIG_LWIP_AUTOIP is not set
+# end of AUTOIP
+
+#
+# IGMP
+#
+CONFIG_LWIP_IGMP_EN=y
+# end of IGMP
+
+#
+# DNS
+#
+CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y
+# end of DNS
+
+#
+# UDP
+#
+CONFIG_LWIP_MAX_UDP_PCBS=16
+CONFIG_LWIP_UDP_RECVMBOX_SIZE=6
+# CONFIG_LWIP_NETBUF_RECVINFO is not set
+# end of UDP
+
+#
+# TCP
+#
+CONFIG_LWIP_TCP_WND_DEFAULT=5744
+CONFIG_LWIP_TCP_MAXRTX=12
+CONFIG_LWIP_TCP_SYNMAXRTX=12
+CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
+# CONFIG_LWIP_TCP_SACK_OUT is not set
+CONFIG_LWIP_TCP_MSS=1440
+CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744
+CONFIG_LWIP_TCP_OVERSIZE_MSS=y
+# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set
+# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set
+CONFIG_LWIP_TCP_TMR_INTERVAL=250
+CONFIG_LWIP_TCP_MSL=60000
+# CONFIG_LWIP_WND_SCALE is not set
+CONFIG_LWIP_TCP_RTO_TIME=1500
+CONFIG_LWIP_MAX_ACTIVE_TCP=16
+CONFIG_LWIP_MAX_LISTENING_TCP=16
+CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y
+CONFIG_LWIP_TCP_RECVMBOX_SIZE=6
+# end of TCP
+
+#
+# Network_Interface
+#
+CONFIG_LWIP_NETIF_API=y
+# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set
+# end of Network_Interface
+
+#
+# LOOPIF
+#
+CONFIG_LWIP_NETIF_LOOPBACK=y
+CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
+# end of LOOPIF
+
+#
+# SLIPIF
+#
+# CONFIG_LWIP_SLIP_SUPPORT is not set
+# end of SLIPIF
+
+CONFIG_LWIP_TCPIP_CORE_LOCKING=y
+
+#
+# Socket
+#
+CONFIG_LWIP_MAX_SOCKETS=10
+# CONFIG_LWIP_SO_LINGER is not set
+CONFIG_LWIP_SO_REUSE=y
+CONFIG_LWIP_SO_REUSE_RXTOALL=y
+# end of Socket
+
+# CONFIG_LWIP_STATS is not set
+
+#
+# PPP
+#
+# CONFIG_LWIP_PPP_SUPPORT is not set
+# end of PPP
+
+#
+# Checksums
+#
+# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set
+# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set
+CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y
+# end of Checksums
+
+#
+# IPV6
+#
+# CONFIG_LWIP_IPV6 is not set
+# end of IPV6
+
+CONFIG_LWIP_DEBUG=y
+# CONFIG_LWIP_DEBUG_ESP_LOG is not set
+CONFIG_LWIP_NETIF_DEBUG=y
+# CONFIG_LWIP_PBUF_DEBUG is not set
+# CONFIG_LWIP_ETHARP_DEBUG is not set
+# CONFIG_LWIP_API_LIB_DEBUG is not set
+# CONFIG_LWIP_SOCKETS_DEBUG is not set
+# CONFIG_LWIP_IP_DEBUG is not set
+# CONFIG_LWIP_ICMP_DEBUG is not set
+# CONFIG_LWIP_DHCP_STATE_DEBUG is not set
+# CONFIG_LWIP_DHCP_DEBUG is not set
+# CONFIG_LWIP_IP6_DEBUG is not set
+# CONFIG_LWIP_ICMP6_DEBUG is not set
+# CONFIG_LWIP_TCP_DEBUG is not set
+# CONFIG_LWIP_UDP_DEBUG is not set
+# CONFIG_LWIP_SNTP_DEBUG is not set
+# CONFIG_LWIP_DNS_DEBUG is not set
+# end of LWIP Configuration
+
+#
+# Tcp/ip task resource configuration
+#
+CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072
+CONFIG_LWIP_TCPIP_TASK_PRIO=6
+CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
+# end of Tcp/ip task resource configuration
+
+#
+# lwip port thread Configuration
+#
+CONFIG_LWIP_PORT_USE_RECEIVE_THREAD=y
+CONFIG_LWIP_PORT_RECEIVE_THREAD_STACKSIZE=1024
+CONFIG_LWIP_PORT_RECEIVE_THREAD_PRIORITY=5
+CONFIG_LWIP_PORT_USE_LINK_DETECT_THREAD=y
+CONFIG_LWIP_PORT_LINK_DETECT_STACKSIZE=1024
+CONFIG_LWIP_PORT_LINK_DETECT_PRIORITY=5
+CONFIG_LWIP_PORT_DHCP_THREAD=y
+CONFIG_LWIP_PORT_DHCP_STACKSIZE=2048
+CONFIG_LWIP_PORT_DHCP_PRIORITY=5
+# end of lwip port thread Configuration
+# end of LWIP Freertos Port Configuration
+
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+CONFIG_USE_TLSF=y
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+CONFIG_FSL_SDMMC_ENABLE_SDIO=y
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+CONFIG_USE_FSL_WIFI=y
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/network/wlan/sdkconfig.h b/example/network/wlan/sdkconfig.h
new file mode 100644
index 0000000000000000000000000000000000000000..4329e73141b5d044227023d26e541cebcb032a33
--- /dev/null
+++ b/example/network/wlan/sdkconfig.h
@@ -0,0 +1,541 @@
+#ifndef SDK_CONFIG_H__
+#define SDK_CONFIG_H__
+
+#define CONFIG_USE_FREERTOS
+
+/* Arch configuration */
+
+#define CONFIG_TARGET_ARMv8
+#define CONFIG_ARCH_NAME "armv8"
+
+/* Arm architecture configuration */
+
+#define CONFIG_ARCH_ARMV8_AARCH64
+/* CONFIG_ARCH_ARMV8_AARCH32 is not set */
+
+/* Compiler configuration */
+
+#define CONFIG_ARM_GCC_SELECT
+/* CONFIG_ARM_CLANG_SELECT is not set */
+#define CONFIG_TOOLCHAIN_NAME "gcc"
+#define CONFIG_TARGET_ARMV8_AARCH64
+#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
+
+/* Fpu configuration */
+
+#define CONFIG_ARM_NEON
+/* end of Fpu configuration */
+#define CONFIG_ARM_CRC
+#define CONFIG_ARM_CRYPTO
+#define CONFIG_ARM_FLOAT_POINT
+/* CONFIG_GCC_CODE_MODEL_TINY is not set */
+#define CONFIG_GCC_CODE_MODEL_SMALL
+/* CONFIG_GCC_CODE_MODEL_LARGE is not set */
+/* end of Compiler configuration */
+#define CONFIG_USE_CACHE
+#define CONFIG_USE_MMU
+#define CONFIG_BOOT_WITH_FLUSH_CACHE
+/* CONFIG_MMU_DEBUG_PRINTS is not set */
+/* end of Arm architecture configuration */
+/* end of Arch configuration */
+
+/* Soc configuration */
+
+/* CONFIG_TARGET_PHYTIUMPI is not set */
+#define CONFIG_TARGET_E2000Q
+/* CONFIG_TARGET_E2000D is not set */
+/* CONFIG_TARGET_E2000S is not set */
+/* CONFIG_TARGET_FT2004 is not set */
+/* CONFIG_TARGET_D2000 is not set */
+#define CONFIG_SOC_NAME "e2000"
+#define CONFIG_TARGET_TYPE_NAME "q"
+#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
+#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
+#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
+#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
+#define CONFIG_TARGET_E2000
+/* CONFIG_USE_SPINLOCK is not set */
+#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
+/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
+/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
+/* end of Soc configuration */
+
+/* Board Configuration */
+
+#define CONFIG_BOARD_NAME "demo"
+/* CONFIG_USE_SPI_IOPAD is not set */
+/* CONFIG_USE_GPIO_IOPAD is not set */
+/* CONFIG_USE_CAN_IOPAD is not set */
+/* CONFIG_USE_QSPI_IOPAD is not set */
+/* CONFIG_USE_PWM_IOPAD is not set */
+/* CONFIG_USE_MIO_IOPAD is not set */
+/* CONFIG_USE_TACHO_IOPAD is not set */
+/* CONFIG_USE_UART_IOPAD is not set */
+/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
+#define CONFIG_E2000Q_DEMO_BOARD
+
+/* IO mux configuration when board start up */
+
+/* end of IO mux configuration when board start up */
+/* CONFIG_CUS_DEMO_BOARD is not set */
+
+/* Build project name */
+
+#define CONFIG_TARGET_NAME "wlan"
+/* end of Build project name */
+/* end of Board Configuration */
+
+/* Sdk common configuration */
+
+/* CONFIG_LOG_VERBOS is not set */
+/* CONFIG_LOG_DEBUG is not set */
+/* CONFIG_LOG_INFO is not set */
+/* CONFIG_LOG_WARN is not set */
+#define CONFIG_LOG_ERROR
+/* CONFIG_LOG_NONE is not set */
+/* CONFIG_LOG_EXTRA_INFO is not set */
+/* CONFIG_LOG_DISPALY_CORE_NUM is not set */
+/* CONFIG_BOOTUP_DEBUG_PRINTS is not set */
+#define CONFIG_USE_DEFAULT_INTERRUPT_CONFIG
+#define CONFIG_INTERRUPT_ROLE_MASTER
+/* CONFIG_INTERRUPT_ROLE_SLAVE is not set */
+/* end of Sdk common configuration */
+
+/* Image information configuration */
+
+/* CONFIG_IMAGE_INFO is not set */
+/* end of Image information configuration */
+
+/* Drivers configuration */
+
+#define CONFIG_USE_IOMUX
+/* CONFIG_ENABLE_IOCTRL is not set */
+#define CONFIG_ENABLE_IOPAD
+/* CONFIG_USE_SPI is not set */
+/* CONFIG_USE_QSPI is not set */
+#define CONFIG_USE_SERIAL
+
+/* Usart Configuration */
+
+#define CONFIG_ENABLE_Pl011_UART
+/* end of Usart Configuration */
+#define CONFIG_USE_GPIO
+#define CONFIG_ENABLE_FGPIO
+/* CONFIG_USE_ETH is not set */
+/* CONFIG_USE_CAN is not set */
+/* CONFIG_USE_I2C is not set */
+/* CONFIG_USE_TIMER is not set */
+/* CONFIG_USE_MIO is not set */
+#define CONFIG_USE_SDMMC
+/* CONFIG_ENABLE_FSDMMC is not set */
+#define CONFIG_ENABLE_FSDIF
+/* CONFIG_USE_PCIE is not set */
+/* CONFIG_USE_WDT is not set */
+/* CONFIG_USE_DMA is not set */
+/* CONFIG_USE_NAND is not set */
+/* CONFIG_USE_RTC is not set */
+/* CONFIG_USE_SATA is not set */
+/* CONFIG_USE_USB is not set */
+/* CONFIG_USE_ADC is not set */
+/* CONFIG_USE_PWM is not set */
+/* CONFIG_USE_IPC is not set */
+/* CONFIG_USE_MEDIA is not set */
+/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
+/* end of Drivers configuration */
+
+/* Build setup */
+
+#define CONFIG_CHECK_DEPS
+#define CONFIG_OUTPUT_BINARY
+
+/* Optimization options */
+
+/* CONFIG_DEBUG_NOOPT is not set */
+/* CONFIG_DEBUG_CUSTOMOPT is not set */
+#define CONFIG_DEBUG_FULLOPT
+/* CONFIG_DEBUG_ENABLE_ALL_WARNING is not set */
+#define CONFIG_DEBUG_OPT_UNUSED_SECTIONS
+#define CONFIG_DEBUG_LINK_MAP
+/* CONFIG_CCACHE is not set */
+/* CONFIG_ARCH_COVERAGE is not set */
+/* CONFIG_LTO_FULL is not set */
+/* end of Optimization options */
+
+/* Debug options */
+
+/* CONFIG_WALL_WARNING_ERROR is not set */
+/* CONFIG_STRICT_PROTOTYPES is not set */
+/* CONFIG_DEBUG_SYMBOLS is not set */
+/* CONFIG_FRAME_POINTER is not set */
+#define CONFIG_OUTPUT_ASM_DIS
+/* CONFIG_ENABLE_WSHADOW is not set */
+/* CONFIG_ENABLE_WUNDEF is not set */
+#define CONFIG_DOWNGRADE_DIAG_WARNING
+/* end of Debug options */
+
+/* Lib */
+
+#define CONFIG_USE_COMPILE_CHAIN
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
+/* end of Lib */
+/* CONFIG_ENABLE_CXX is not set */
+
+/* Linker Options */
+
+#define CONFIG_DEFAULT_LINKER_SCRIPT
+/* CONFIG_USER_DEFINED_LD is not set */
+#define CONFIG_IMAGE_LOAD_ADDRESS 0x80100000
+#define CONFIG_IMAGE_MAX_LENGTH 0x1000000
+#define CONFIG_HEAP_SIZE 1
+#define CONFIG_STACK_SIZE 0x400
+#define CONFIG_FPU_STACK_SIZE 0x1000
+/* end of Linker Options */
+/* end of Build setup */
+
+/* Component Configuration */
+
+/* Freertos Uart Drivers */
+
+#define CONFIG_FREERTOS_USE_UART
+/* end of Freertos Uart Drivers */
+
+/* Freertos Pwm Drivers */
+
+/* CONFIG_FREERTOS_USE_PWM is not set */
+/* end of Freertos Pwm Drivers */
+
+/* Freertos Qspi Drivers */
+
+/* CONFIG_FREERTOS_USE_QSPI is not set */
+/* end of Freertos Qspi Drivers */
+
+/* Freertos Wdt Drivers */
+
+/* CONFIG_FREERTOS_USE_WDT is not set */
+/* end of Freertos Wdt Drivers */
+
+/* Freertos Eth Drivers */
+
+/* CONFIG_FREERTOS_USE_XMAC is not set */
+/* CONFIG_FREERTOS_USE_GMAC is not set */
+/* end of Freertos Eth Drivers */
+
+/* Freertos Gpio Drivers */
+
+/* CONFIG_FREERTOS_USE_GPIO is not set */
+/* end of Freertos Gpio Drivers */
+
+/* Freertos Spim Drivers */
+
+/* CONFIG_FREERTOS_USE_FSPIM is not set */
+/* end of Freertos Spim Drivers */
+
+/* Freertos DMA Drivers */
+
+/* CONFIG_FREERTOS_USE_FDDMA is not set */
+/* CONFIG_FREERTOS_USE_FGDMA is not set */
+/* end of Freertos DMA Drivers */
+
+/* Freertos Adc Drivers */
+
+/* CONFIG_FREERTOS_USE_ADC is not set */
+/* end of Freertos Adc Drivers */
+
+/* Freertos Can Drivers */
+
+/* CONFIG_FREERTOS_USE_CAN is not set */
+/* end of Freertos Can Drivers */
+
+/* Freertos I2c Drivers */
+
+/* CONFIG_FREERTOS_USE_I2C is not set */
+/* end of Freertos I2c Drivers */
+
+/* Freertos Mio Drivers */
+
+/* CONFIG_FREERTOS_USE_MIO is not set */
+/* end of Freertos Mio Drivers */
+
+/* Freertos Timer Drivers */
+
+/* CONFIG_FREERTOS_USE_TIMER is not set */
+/* end of Freertos Timer Drivers */
+
+/* Freertos Media Drivers */
+
+/* CONFIG_FREERTOS_USE_MEDIA is not set */
+/* end of Freertos Media Drivers */
+/* end of Component Configuration */
+
+/* Third-party configuration */
+
+#define CONFIG_USE_LWIP
+
+/* LWIP Freertos Port Configuration */
+
+/* LWIP Configuration */
+
+/* LWIP Port Configuration */
+
+/* CONFIG_LWIP_FXMAC is not set */
+/* CONFIG_LWIP_FGMAC is not set */
+#define CONFIG_LWIP_FSDIF
+/* CONFIG_LWIP_RX_POLL is not set */
+/* end of LWIP Port Configuration */
+/* CONFIG_LWIP_NO_SYS is not set */
+#define CONFIG_LWIP_LOCAL_HOSTNAME "phytium"
+
+/* LWIP_APP */
+
+#define CONFIG_USE_LWIP_APP_LWIPERF
+#define CONFIG_USE_LWIP_APP_PING
+/* CONFIG_USE_LWIP_APP_TFTP is not set */
+/* end of LWIP_APP */
+
+/* Memory configuration */
+
+/* CONFIG_LWIP_USE_MEM_POOL is not set */
+#define CONFIG_LWIP_USE_MEM_HEAP
+/* CONFIG_LWIP_USE_MEM_HEAP_DEBUG is not set */
+#define CONFIG_MEM_SIZE 2
+#define CONFIG_MEM_ALIGNMENT 64
+/* end of Memory configuration */
+
+/* Pbuf options */
+
+#define CONFIG_PBUF_POOL_BUFSIZE 2
+#define CONFIG_PBUF_POOL_SIZE 1
+/* end of Pbuf options */
+
+/* ARP */
+
+#define CONFIG_ARP_QUEUEING_EN
+/* end of ARP */
+
+/* IPV4 */
+
+/* CONFIG_USE_IPV4_ONLY is not set */
+#define CONFIG_LWIP_IP4_REASSEMBLY
+#define CONFIG_LWIP_IP4_FRAG
+/* CONFIG_LWIP_IP_FORWARD is not set */
+#define CONFIG_IP_REASS_MAX_PBUFS 16
+/* end of IPV4 */
+
+/* ICMP */
+
+#define CONFIG_LWIP_ICMP
+#define CONFIG_LWIP_MULTICAST_PING
+#define CONFIG_LWIP_BROADCAST_PING
+/* end of ICMP */
+
+/* LWIP RAW API */
+
+#define CONFIG_LWIP_RAW_API_EN
+#define CONFIG_LWIP_MAX_RAW_PCBS 16
+/* end of LWIP RAW API */
+
+/* DHCP */
+
+#define CONFIG_LWIP_DHCP_ENABLE
+/* CONFIG_LWIP_DHCP_DOES_ARP_CHECK is not set */
+/* CONFIG_LWIP_DHCP_GET_NTP_SRV is not set */
+/* CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set */
+/* CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set */
+#define CONFIG_LWIP_DHCP_OPTIONS_LEN 68
+#define CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID
+/* end of DHCP */
+
+/* AUTOIP */
+
+/* CONFIG_LWIP_AUTOIP is not set */
+/* end of AUTOIP */
+
+/* IGMP */
+
+#define CONFIG_LWIP_IGMP_EN
+/* end of IGMP */
+
+/* DNS */
+
+#define CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES
+/* end of DNS */
+
+/* UDP */
+
+#define CONFIG_LWIP_MAX_UDP_PCBS 16
+#define CONFIG_LWIP_UDP_RECVMBOX_SIZE 6
+/* CONFIG_LWIP_NETBUF_RECVINFO is not set */
+/* end of UDP */
+
+/* TCP */
+
+#define CONFIG_LWIP_TCP_WND_DEFAULT 5744
+#define CONFIG_LWIP_TCP_MAXRTX 12
+#define CONFIG_LWIP_TCP_SYNMAXRTX 12
+#define CONFIG_LWIP_TCP_QUEUE_OOSEQ
+/* CONFIG_LWIP_TCP_SACK_OUT is not set */
+#define CONFIG_LWIP_TCP_MSS 1440
+#define CONFIG_LWIP_TCP_SND_BUF_DEFAULT 5744
+#define CONFIG_LWIP_TCP_OVERSIZE_MSS
+/* CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set */
+/* CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set */
+#define CONFIG_LWIP_TCP_TMR_INTERVAL 250
+#define CONFIG_LWIP_TCP_MSL 60000
+/* CONFIG_LWIP_WND_SCALE is not set */
+#define CONFIG_LWIP_TCP_RTO_TIME 1500
+#define CONFIG_LWIP_MAX_ACTIVE_TCP 16
+#define CONFIG_LWIP_MAX_LISTENING_TCP 16
+#define CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION
+#define CONFIG_LWIP_TCP_RECVMBOX_SIZE 6
+/* end of TCP */
+
+/* Network_Interface */
+
+#define CONFIG_LWIP_NETIF_API
+/* CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set */
+/* end of Network_Interface */
+
+/* LOOPIF */
+
+#define CONFIG_LWIP_NETIF_LOOPBACK
+#define CONFIG_LWIP_LOOPBACK_MAX_PBUFS 8
+/* end of LOOPIF */
+
+/* SLIPIF */
+
+/* CONFIG_LWIP_SLIP_SUPPORT is not set */
+/* end of SLIPIF */
+#define CONFIG_LWIP_TCPIP_CORE_LOCKING
+
+/* Socket */
+
+#define CONFIG_LWIP_MAX_SOCKETS 10
+/* CONFIG_LWIP_SO_LINGER is not set */
+#define CONFIG_LWIP_SO_REUSE
+#define CONFIG_LWIP_SO_REUSE_RXTOALL
+/* end of Socket */
+/* CONFIG_LWIP_STATS is not set */
+
+/* PPP */
+
+/* CONFIG_LWIP_PPP_SUPPORT is not set */
+/* end of PPP */
+
+/* Checksums */
+
+/* CONFIG_LWIP_CHECKSUM_CHECK_IP is not set */
+/* CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set */
+#define CONFIG_LWIP_CHECKSUM_CHECK_ICMP
+/* end of Checksums */
+
+/* IPV6 */
+
+/* CONFIG_LWIP_IPV6 is not set */
+/* end of IPV6 */
+#define CONFIG_LWIP_DEBUG
+/* CONFIG_LWIP_DEBUG_ESP_LOG is not set */
+#define CONFIG_LWIP_NETIF_DEBUG
+/* CONFIG_LWIP_PBUF_DEBUG is not set */
+/* CONFIG_LWIP_ETHARP_DEBUG is not set */
+/* CONFIG_LWIP_API_LIB_DEBUG is not set */
+/* CONFIG_LWIP_SOCKETS_DEBUG is not set */
+/* CONFIG_LWIP_IP_DEBUG is not set */
+/* CONFIG_LWIP_ICMP_DEBUG is not set */
+/* CONFIG_LWIP_DHCP_STATE_DEBUG is not set */
+/* CONFIG_LWIP_DHCP_DEBUG is not set */
+/* CONFIG_LWIP_IP6_DEBUG is not set */
+/* CONFIG_LWIP_ICMP6_DEBUG is not set */
+/* CONFIG_LWIP_TCP_DEBUG is not set */
+/* CONFIG_LWIP_UDP_DEBUG is not set */
+/* CONFIG_LWIP_SNTP_DEBUG is not set */
+/* CONFIG_LWIP_DNS_DEBUG is not set */
+/* end of LWIP Configuration */
+
+/* Tcp/ip task resource configuration */
+
+#define CONFIG_LWIP_TCPIP_TASK_STACK_SIZE 3072
+#define CONFIG_LWIP_TCPIP_TASK_PRIO 6
+#define CONFIG_LWIP_TCPIP_RECVMBOX_SIZE 32
+/* end of Tcp/ip task resource configuration */
+
+/* lwip port thread Configuration */
+
+#define CONFIG_LWIP_PORT_USE_RECEIVE_THREAD
+#define CONFIG_LWIP_PORT_RECEIVE_THREAD_STACKSIZE 1024
+#define CONFIG_LWIP_PORT_RECEIVE_THREAD_PRIORITY 5
+#define CONFIG_LWIP_PORT_USE_LINK_DETECT_THREAD
+#define CONFIG_LWIP_PORT_LINK_DETECT_STACKSIZE 1024
+#define CONFIG_LWIP_PORT_LINK_DETECT_PRIORITY 5
+#define CONFIG_LWIP_PORT_DHCP_THREAD
+#define CONFIG_LWIP_PORT_DHCP_STACKSIZE 2048
+#define CONFIG_LWIP_PORT_DHCP_PRIORITY 5
+/* end of lwip port thread Configuration */
+/* end of LWIP Freertos Port Configuration */
+#define CONFIG_USE_LETTER_SHELL
+
+/* Letter Shell Configuration */
+
+#define CONFIG_LS_PL011_UART
+#define CONFIG_DEFAULT_LETTER_SHELL_USE_UART1
+/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set */
+/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
+/* end of Letter Shell Configuration */
+/* CONFIG_USE_AMP is not set */
+/* CONFIG_USE_YMODEM is not set */
+/* CONFIG_USE_SFUD is not set */
+#define CONFIG_USE_BACKTRACE
+/* CONFIG_USE_FATFS_0_1_4 is not set */
+#define CONFIG_USE_TLSF
+/* CONFIG_USE_SPIFFS is not set */
+/* CONFIG_USE_LITTLE_FS is not set */
+/* CONFIG_USE_LVGL is not set */
+/* CONFIG_USE_FREEMODBUS is not set */
+/* CONFIG_USE_CHERRY_USB is not set */
+#define CONFIG_USE_FSL_SDMMC
+
+/* FSL Sdmmc configuration */
+
+/* Host configuration */
+
+#define CONFIG_FSL_SDMMC_USE_FSDIF
+/* CONFIG_FSL_SDMMC_USE_FSDMMC is not set */
+/* end of Host configuration */
+
+/* Protocol configuration */
+
+#define CONFIG_FSL_SDMMC_ENABLE_SD
+#define CONFIG_FSL_SDMMC_ENABLE_MMC
+#define CONFIG_FSL_SDMMC_ENABLE_SDIO
+/* CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set */
+/* end of Protocol configuration */
+/* end of FSL Sdmmc configuration */
+#define CONFIG_USE_FSL_WIFI
+/* end of Third-party configuration */
+
+/* FreeRTOS Kernel Configuration */
+
+#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
+#define CONFIG_FREERTOS_HZ 1000
+#define CONFIG_FREERTOS_MAX_PRIORITIES 32
+#define CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES 13
+#define CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES 11
+#define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1
+#define CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE 1024
+#define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 32
+#define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1
+#define CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH 2048
+#define CONFIG_FREERTOS_TIMER_QUEUE_LENGTH 10
+#define CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE 0
+#define CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS
+#define CONFIG_FREERTOS_USE_TRACE_FACILITY
+#define CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS
+/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
+#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
+#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
+
+#endif
diff --git a/example/network/wlan/src/cmd_ap.c b/example/network/wlan/src/cmd_ap.c
new file mode 100644
index 0000000000000000000000000000000000000000..7fbcfeae0d5cff1286d66605f621ba46072fdd2e
--- /dev/null
+++ b/example/network/wlan/src/cmd_ap.c
@@ -0,0 +1,72 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: cmd_ap.c
+ * Date: 2022-07-12 09:33:12
+ * LastEditTime: 2022-07-12 09:33:12
+ * Description: This file is for providing user command functions.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 zhugengyu 2022/8/26 first commit
+ */
+/***************************** Include Files *********************************/
+#include
+#include
+#include "strto.h"
+#include "sdkconfig.h"
+
+#include "FreeRTOS.h"
+
+#include "../src/shell.h"
+#include "wlan_ap_config.h"
+/************************** Constant Definitions *****************************/
+
+/**************************** Type Definitions *******************************/
+
+/***************** Macros (Inline Functions) Definitions *********************/
+
+/************************** Function Prototypes ******************************/
+
+/************************** Variable Definitions *****************************/
+
+/*****************************************************************************/
+static void APCmdUsage()
+{
+ printf("Usage:\r\n");
+ printf(" wlan_ap start\r\n");
+ printf(" -- Start run the wireless access point\r\n");
+}
+
+static int APCmdEntry(int argc, char *argv[])
+{
+ int ret = 0;
+
+ if (argc < 2)
+ {
+ APCmdUsage();
+ return -1;
+ }
+
+ if (!strcmp(argv[1], "start"))
+ {
+ if (pdPASS != FFreeRTOSStartAP())
+ {
+ return -2;
+ }
+ }
+
+ return 0;
+}
+SHELL_EXPORT_CMD(SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), wlan_ap, APCmdEntry, wireless ap functions);
\ No newline at end of file
diff --git a/example/network/wlan/src/cmd_station.c b/example/network/wlan/src/cmd_station.c
new file mode 100644
index 0000000000000000000000000000000000000000..f1e62ba9ac7108e4f63adf9e0aad10aa10e08aa5
--- /dev/null
+++ b/example/network/wlan/src/cmd_station.c
@@ -0,0 +1,101 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: cmd_station.c
+ * Date: 2022-07-12 09:33:12
+ * LastEditTime: 2022-07-12 09:33:12
+ * Description: This file is for providing user command functions.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 zhugengyu 2022/8/26 first commit
+ */
+/***************************** Include Files *********************************/
+#include
+#include
+#include "strto.h"
+#include "sdkconfig.h"
+
+#include "FreeRTOS.h"
+
+#include "../src/shell.h"
+#include "wlan_station_scan.h"
+#include "wlan_station_connect.h"
+/************************** Constant Definitions *****************************/
+
+/**************************** Type Definitions *******************************/
+
+/***************** Macros (Inline Functions) Definitions *********************/
+
+/************************** Function Prototypes ******************************/
+
+/************************** Variable Definitions *****************************/
+
+/*****************************************************************************/
+static void WlanCmdUsage()
+{
+ printf("Usage:\r\n");
+ printf(" wlan_station scan\r\n");
+ printf(" -- Scan nearby wlan station\r\n");
+ printf(" wlan_station join [ssid] [password] [remote-ip]\r\n");
+ printf(" -- Join a wlan station in scanned station list\r\n");
+ printf(" wlan_station ping [remote-ip]\r\n");
+ printf(" -- Ping remote-ip after join a wlan station\r\n");
+}
+
+static int WlanCmdEntry(int argc, char *argv[])
+{
+ int ret = 0;
+
+ if (argc < 2)
+ {
+ WlanCmdUsage();
+ return -1;
+ }
+
+ if (!strcmp(argv[1], "scan"))
+ {
+ if (pdPASS != FFreeRTOSWlanStationScanInit())
+ {
+ return -2;
+ }
+ }
+ else if (!strcmp(argv[1], "join"))
+ {
+ if (argc < 4)
+ {
+ return -3;
+ }
+
+ if (pdPASS != FFreeRTOSWlanStationConnectInit(argv[2], argv[3]))
+ {
+ return -2;
+ }
+ }
+ else if (!strcmp(argv[1], "ping"))
+ {
+ if (argc < 3)
+ {
+ return -3;
+ }
+
+ if (pdPASS != FFreeRTOSWlanStationPing(argv[2]))
+ {
+ return -2;
+ }
+ }
+
+ return 0;
+}
+SHELL_EXPORT_CMD(SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), wlan_station, WlanCmdEntry, wlan functions);
\ No newline at end of file
diff --git a/example/network/wlan/src/wlan_ap_config.c b/example/network/wlan/src/wlan_ap_config.c
new file mode 100644
index 0000000000000000000000000000000000000000..43cd1a5a79f994732ecc94694db7d636fe6accd7
--- /dev/null
+++ b/example/network/wlan/src/wlan_ap_config.c
@@ -0,0 +1,313 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: wlan_ap_config.c
+ * Date: 2022-07-12 09:53:00
+ * LastEditTime: 2022-07-12 09:53:02
+ * Description: This file is for providing functions used in cmd_sf.c file.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 zhugengyu 2023/10/19 first commit
+ */
+/***************************** Include Files *********************************/
+#include
+#include
+#include
+
+#include "FreeRTOS.h"
+#include "task.h"
+
+#include "fdebug.h"
+#include "fsleep.h"
+#include "fkernel.h"
+
+#include "wlan_common.h"
+#include "wlan_ap_config.h"
+/************************** Constant Definitions *****************************/
+/* Parameters that apply to AP mode only */
+#ifndef WIFI_AP_CHANNEL
+#define WIFI_AP_CHANNEL 1
+#endif
+
+#define MAX_RETRY_TICKS 50
+
+typedef enum
+{
+ WIFI_STATE_CLIENT,
+ WIFI_STATE_CONNECTING,
+ WIFI_STATE_CLIENT_SCAN,
+ WIFI_STATE_AP,
+ WIFI_STATE_AP_SCAN,
+} WifiBoardStates;
+
+struct WifiBoardStatesVariables
+{
+ WifiBoardStates wifiState;
+ char ssid[FWLAN_WIFI_SSID_LENGTH];
+ char password[FWLAN_WIFI_PASSWORD_LENGTH];
+ char security[FWLAN_WIFI_SECURITY_LENGTH];
+ bool connected;
+ TaskHandle_t mainTask;
+};
+/************************** Variable Definitions *****************************/
+static char ssid[FWLAN_WIFI_SSID_LENGTH] = FWLAN_WIFI_SSID;
+static char password[FWLAN_WIFI_PASSWORD_LENGTH] = FWLAN_WIFI_PASSWORD;
+static char security[FWLAN_WIFI_SECURITY_LENGTH] = FWLAN_WIFI_SECURITY;
+struct WifiBoardStatesVariables g_board_state;
+
+/***************** Macros (Inline Functions) Definitions *********************/
+
+/************************** Function Prototypes ******************************/
+
+/*****************************************************************************/
+/* Link lost callback */
+static void LinkStatusChangeCallback(bool linkState)
+{
+ if (linkState == false)
+ {
+ /* -------- LINK LOST -------- */
+ /* DO SOMETHING */
+ printf("-------- LINK LOST --------\r\n");
+ }
+ else
+ {
+ /* -------- LINK REESTABLISHED -------- */
+ /* DO SOMETHING */
+ printf("-------- LINK REESTABLISHED --------\r\n");
+ }
+}
+
+/* Initialize and start local AP */
+static uint32_t SetBoardToAP()
+{
+ uint32_t result;
+
+ /* Set the global ssid and password to the default AP ssid and password */
+ strcpy(g_board_state.ssid, FWLAN_WIFI_SSID);
+ strcpy(g_board_state.password, FWLAN_WIFI_PASSWORD);
+
+ /* Start the access point */
+ printf("Starting Access Point: SSID: %s, Chnl: %d\r\n", g_board_state.ssid, WIFI_AP_CHANNEL);
+ result = FWlanStartAP(g_board_state.ssid, g_board_state.password, WIFI_AP_CHANNEL);
+
+ if (result != FWLAN_RET_SUCCESS)
+ {
+ printf("[!] Failed to start access point, err = %d\r\n", result);
+ assert(0);
+ }
+ g_board_state.connected = true;
+
+ char ip[16];
+ FWlanGetIP(ip, 0);
+ printf(" Now join that network on your device and connect to this IP: %s\r\n", ip);
+
+ return 0;
+}
+
+/* Connect to the external AP in g_board_state.ssid */
+static uint32_t SetBoardToClient()
+{
+ int32_t result;
+ /* If we are already connected, skip the initialization */
+ if (!g_board_state.connected)
+ {
+ /* Add Wi-Fi network */
+ if (strstr(g_board_state.security, "WPA3_SAE"))
+ {
+ result = FWlanAddNetworkWithSecurity(g_board_state.ssid, g_board_state.password, FWLAN_WIFI_NETWORK_LABEL, FWLAN_SECURITY_WPA3_SAE);
+ }
+ else
+ {
+ result = FWlanAddNetworkWithSecurity(g_board_state.ssid, g_board_state.password, FWLAN_WIFI_NETWORK_LABEL, FWLAN_SECURITY_WILDCARD);
+ }
+ if (result == FWLAN_RET_SUCCESS)
+ {
+ printf("Connecting as client to ssid: %s with password %s\r\n", g_board_state.ssid, g_board_state.password);
+ result = FWlanJoin(FWLAN_WIFI_NETWORK_LABEL);
+ }
+
+ if (result != FWLAN_RET_SUCCESS)
+ {
+ printf("[!] Cannot connect to Wi-Fi\r\n[!]ssid: %s\r\n[!]passphrase: %s\r\n", g_board_state.ssid,
+ g_board_state.password);
+ char c;
+ do
+ {
+ printf("[i] To reset the board to AP mode, press 'r'.\r\n");
+ printf("[i] In order to try connecting again press 'a'.\r\n");
+
+ do
+ {
+ c = GETCHAR();
+ // Skip over \n and \r and don't print the prompt again, just get next char
+ } while (c == '\n' || c == '\r');
+
+ switch (c)
+ {
+ case 'r':
+ case 'R':
+ {
+ // Reset back to AP mode
+ g_board_state.wifiState = WIFI_STATE_AP;
+ return 0;
+ }
+ break;
+ case 'a':
+ case 'A':
+ // Try connecting again...
+ return 0;
+ default:
+ printf("Unknown command %c, please try again.\r\n", c);
+ }
+
+ } while (1);
+ }
+ else
+ {
+ printf("[i] Connected to Wi-Fi\r\nssid: %s\r\n[!]passphrase: %s\r\n", g_board_state.ssid,
+ g_board_state.password);
+ g_board_state.connected = true;
+ char ip[16];
+ FWlanGetIP(ip, 1);
+ printf(" Now join that network on your device and connect to this IP: %s\r\n", ip);
+ }
+ }
+ return 0;
+}
+
+/* Clean up the local AP after waiting for all tasks to clean up */
+static uint32_t CleanUpAP()
+{
+ /* Give time for reply message to reach the web interface before destorying the conection */
+ vTaskDelay(10000 / portTICK_PERIOD_MS);
+
+ printf("[i] Stopping AP!\r\n");
+ if (FWlanStopAP() != FWLAN_RET_SUCCESS)
+ {
+ printf("Error while stopping ap\r\n");
+ assert(0);
+ }
+
+ return 0;
+}
+
+/* Wait for any transmissions to finish and clean up the Client connection */
+static uint32_t CleanUpClient(void)
+{
+ /* Give time for reply message to reach the web interface before destroying the connection */
+ vTaskDelay(1000 / portTICK_PERIOD_MS);
+
+ /* Leave the external AP */
+ if (FWlanLeave() != FWLAN_RET_SUCCESS)
+ {
+ printf("[!] Error Leaving from Client network.\r\n");
+ assert(0);
+ }
+
+ /* Remove the network profile */
+ if (FWlanRemoveNetwork(FWLAN_WIFI_NETWORK_LABEL) != FWLAN_RET_SUCCESS)
+ {
+ printf("[!] Failed to remove network profile.\r\n");
+ assert(0);
+ }
+
+ return 0;
+}
+
+static void StartAP(void *arg)
+{
+ uint32_t result = 1;
+
+ /* Credentials from last time have been found. The board will attempt to
+ * connect to this network as a client */
+ printf("[i] AP SSID: %s, Password: %s, Security: %s\r\n", ssid, password, security);
+
+ memset(g_board_state.ssid, 0U, sizeof(g_board_state.ssid));
+ memset(g_board_state.password, 0U, sizeof(g_board_state.password));
+ memset(g_board_state.security, 0U, sizeof(g_board_state.security));
+
+ g_board_state.connected = false;
+ g_board_state.wifiState = WIFI_STATE_AP;
+ strcpy(g_board_state.ssid, ssid);
+ strcpy(g_board_state.password, password);
+ strcpy(g_board_state.security, security);
+
+ /* Initialize Wi-Fi board */
+ printf("[i] Initializing Wi-Fi connection... \r\n");
+
+ result = FWlanInit();
+ if (result != FWLAN_RET_SUCCESS)
+ {
+ printf("[!] WPL Init failed: %d\r\n", (uint32_t)result);
+ goto task_exit;
+ }
+
+ result = FWlanStart(LinkStatusChangeCallback);
+ if (result != FWLAN_RET_SUCCESS)
+ {
+ printf("[!] WPL Start failed %d\r\n", (uint32_t)result);
+ goto task_exit;
+ }
+
+ printf("[i] Successfully initialized Wi-Fi module\r\n");
+
+ /* Here other tasks can be created that will run the enduser app.... */
+
+ /* Main Loop */
+ while (TRUE)
+ {
+ /* The SetBoardTo function will configure the board Wifi to that given state.
+ * After that, this task will suspend itself. It will remain suspended until it is time
+ * to switch the state again. Uppon resuming, it will clean up the current state.
+ * Every time the Wi-Fi state changes, this loop will perform an iteration switching back
+ * and fourth between the two states as required.
+ */
+ switch (g_board_state.wifiState)
+ {
+ case WIFI_STATE_CLIENT:
+ SetBoardToClient();
+ /* Suspend here until its time to swtich back to AP */
+ vTaskSuspend(NULL);
+ CleanUpClient();
+ break;
+ case WIFI_STATE_AP:
+ default:
+ SetBoardToAP();
+ /* Suspend here until its time to stop the AP */
+ vTaskSuspend(NULL);
+ CleanUpAP();
+ }
+ }
+
+task_exit:
+ vTaskDelete(NULL);
+}
+
+BaseType_t FFreeRTOSStartAP(void)
+{
+ /* Create the main Task */
+ if (xTaskCreate(StartAP,
+ "StartAP",
+ 4096,
+ NULL,
+ (UBaseType_t)configMAX_PRIORITIES - 1,
+ NULL) != pdPASS)
+ {
+ printf("[!] MAIN Task creation failed!\r\n");
+ return pdFAIL;
+ }
+
+ return pdPASS;
+}
\ No newline at end of file
diff --git a/example/network/wlan/src/wlan_common.c b/example/network/wlan/src/wlan_common.c
new file mode 100644
index 0000000000000000000000000000000000000000..6543d476eff7ed966c18e39d21273063b141bb71
--- /dev/null
+++ b/example/network/wlan/src/wlan_common.c
@@ -0,0 +1,857 @@
+/*
+ * Copyright 2020-2023 NXP
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include "wlan_bt_fw.h"
+#include "wlan.h"
+#include "wifi.h"
+#include "wm_net.h"
+#include
+#include "dhcp-server.h"
+#include
+#include "event_groups.h"
+#include "wlan_common.h"
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+#define MAX_JSON_NETWORK_RECORD_LENGTH 185
+
+#define WLAN_SYNC_TIMEOUT_MS portMAX_DELAY
+
+#define WLAN_UAP_NETWORK_NAME "uap-network"
+
+#define WLAN_EVENT_BIT(event) (1 << event)
+
+#define WLAN_SYNC_INIT_GROUP WLAN_EVENT_BIT(WLAN_REASON_INITIALIZED) | WLAN_EVENT_BIT(WLAN_REASON_INITIALIZATION_FAILED)
+
+#define WLAN_SYNC_CONNECT_GROUP \
+ WLAN_EVENT_BIT(WLAN_REASON_SUCCESS) | WLAN_EVENT_BIT(WLAN_REASON_CONNECT_FAILED) | \
+ WLAN_EVENT_BIT(WLAN_REASON_NETWORK_NOT_FOUND) | WLAN_EVENT_BIT(WLAN_REASON_NETWORK_AUTH_FAILED) | \
+ WLAN_EVENT_BIT(WLAN_REASON_ADDRESS_FAILED)
+
+#define WLAN_SYNC_DISCONNECT_GROUP WLAN_EVENT_BIT(WLAN_REASON_USER_DISCONNECT)
+
+#define WLAN_SYNC_UAP_START_GROUP WLAN_EVENT_BIT(WLAN_REASON_UAP_SUCCESS) | WLAN_EVENT_BIT(WLAN_REASON_UAP_START_FAILED)
+
+#define WLAN_SYNC_UAP_STOP_GROUP WLAN_EVENT_BIT(WLAN_REASON_UAP_STOPPED) | WLAN_EVENT_BIT(WLAN_REASON_UAP_STOP_FAILED)
+
+#define WLAN_EVENT_SCAN_DONE 23
+#define WLAN_SYNC_SCAN_GROUP WLAN_EVENT_BIT(WLAN_EVENT_SCAN_DONE)
+
+typedef enum
+{
+ WLAN_STATE_NOT_INITIALIZED,
+ WLAN_STATE_INITIALIZED,
+ WLAN_STATE_STARTED,
+} WlanState;
+
+/*******************************************************************************
+ * Variables
+ ******************************************************************************/
+static WlanState s_wlan_state = WLAN_STATE_NOT_INITIALIZED;
+static bool s_wlan_sta_connected = false;
+static bool s_wlan_uap_activated = false;
+static EventGroupHandle_t s_wlan_sync_event = NULL;
+static FWlanLinkLostCb s_link_lost_cb = NULL;
+static char *ssids_json = NULL;
+
+/*******************************************************************************
+ * Prototypes
+ ******************************************************************************/
+int WlanEventCallback(enum wlan_event_reason reason, void *data);
+static int WLanProcessResults(unsigned int count);
+
+/*******************************************************************************
+ * Code
+ ******************************************************************************/
+/* Callback Function passed to WLAN Connection Manager. The callback function
+ * gets called when there are WLAN Events that need to be handled by the
+ * application.
+ */
+int WlanEventCallback(enum wlan_event_reason reason, void *data)
+{
+#ifdef FWLAN_DEBUG
+ printf("-------- WlanEventCallback %d --------\r\n", reason);
+#endif
+ if (s_wlan_state >= WLAN_STATE_INITIALIZED)
+ {
+ xEventGroupSetBits(s_wlan_sync_event, WLAN_EVENT_BIT(reason));
+ }
+
+ switch (reason)
+ {
+ case WLAN_REASON_SUCCESS:
+ if (s_wlan_sta_connected)
+ {
+ s_link_lost_cb(true);
+ }
+ break;
+
+ case WLAN_REASON_AUTH_SUCCESS:
+ break;
+
+ case WLAN_REASON_CONNECT_FAILED:
+ case WLAN_REASON_NETWORK_NOT_FOUND:
+ case WLAN_REASON_NETWORK_AUTH_FAILED:
+ if (s_wlan_sta_connected)
+ {
+ s_link_lost_cb(false);
+ }
+ break;
+
+ case WLAN_REASON_ADDRESS_SUCCESS:
+ break;
+ case WLAN_REASON_ADDRESS_FAILED:
+ break;
+ case WLAN_REASON_LINK_LOST:
+ if (s_wlan_sta_connected)
+ {
+ s_link_lost_cb(false);
+ }
+ break;
+
+ case WLAN_REASON_CHAN_SWITCH:
+ break;
+ case WLAN_REASON_WPS_DISCONNECT:
+ break;
+ case WLAN_REASON_USER_DISCONNECT:
+ break;
+ case WLAN_REASON_INITIALIZED:
+ break;
+ case WLAN_REASON_INITIALIZATION_FAILED:
+ break;
+ case WLAN_REASON_PS_ENTER:
+ break;
+ case WLAN_REASON_PS_EXIT:
+ break;
+ case WLAN_REASON_UAP_SUCCESS:
+ break;
+
+ case WLAN_REASON_UAP_CLIENT_ASSOC:
+#ifdef FWLAN_DEBUG
+ printf("Client => ");
+ print_mac((const char *)data);
+ printf("Associated with Soft AP\r\n");
+#endif
+ break;
+ case WLAN_REASON_UAP_CLIENT_DISSOC:
+#ifdef FWLAN_DEBUG
+ printf("Client => ");
+ print_mac((const char *)data);
+ printf("Dis-Associated from Soft AP\r\n");
+#endif
+ break;
+
+ case WLAN_REASON_UAP_START_FAILED:
+ break;
+ case WLAN_REASON_UAP_STOP_FAILED:
+ break;
+ case WLAN_REASON_UAP_STOPPED:
+ break;
+ default:
+#ifdef FWLAN_DEBUG
+ printf("Unknown Wifi CB Reason %d\r\n", reason);
+#endif
+ break;
+ }
+
+ return WM_SUCCESS;
+}
+
+FWlanRetStatus FWlanInit(void)
+{
+ FWlanRetStatus status = FWLAN_RET_SUCCESS;
+ int ret;
+
+ if (s_wlan_state != WLAN_STATE_NOT_INITIALIZED)
+ {
+ status = FWLAN_RET_FAIL;
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ if (s_wlan_sync_event == NULL)
+ {
+ s_wlan_sync_event = xEventGroupCreate();
+ }
+
+ if (s_wlan_sync_event == NULL)
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ ret = wlan_init(wlan_fw_bin, wlan_fw_bin_len);
+ if (ret != WM_SUCCESS)
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ s_wlan_state = WLAN_STATE_INITIALIZED;
+ }
+
+ return status;
+}
+
+FWlanRetStatus FWlanStart(FWlanLinkLostCb callbackFunction)
+{
+ FWlanRetStatus status = FWLAN_RET_SUCCESS;
+ int ret;
+ EventBits_t syncBit;
+
+ if (s_wlan_state != WLAN_STATE_INITIALIZED)
+ {
+ status = FWLAN_NOT_READY;
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ xEventGroupClearBits(s_wlan_sync_event, WLAN_SYNC_INIT_GROUP);
+
+ ret = wlan_start(WlanEventCallback);
+ if (ret != WM_SUCCESS)
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ syncBit = xEventGroupWaitBits(s_wlan_sync_event, WLAN_SYNC_INIT_GROUP, pdTRUE, pdFALSE, WLAN_SYNC_TIMEOUT_MS);
+ if (syncBit & WLAN_EVENT_BIT(WLAN_REASON_INITIALIZED))
+ {
+ s_link_lost_cb = callbackFunction;
+ status = FWLAN_RET_SUCCESS;
+ }
+ else if (syncBit & WLAN_EVENT_BIT(WLAN_REASON_INITIALIZATION_FAILED))
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ else
+ {
+ status = FWLAN_TIMEOUT;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ s_wlan_state = WLAN_STATE_STARTED;
+ }
+
+ return status;
+}
+
+FWlanRetStatus FWlanStop(void)
+{
+ FWlanRetStatus status = FWLAN_RET_SUCCESS;
+ int ret;
+
+ if (s_wlan_state != WLAN_STATE_STARTED)
+ {
+ status = FWLAN_NOT_READY;
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ ret = wlan_stop();
+ if (ret != WM_SUCCESS)
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ s_wlan_state = WLAN_STATE_INITIALIZED;
+ }
+
+ return status;
+}
+
+FWlanRetStatus FWlanStartAP(char *ssid, char *password, int chan)
+{
+ FWlanRetStatus status = FWLAN_RET_SUCCESS;
+ int ret;
+ enum wlan_security_type security = WLAN_SECURITY_NONE;
+ EventBits_t syncBit;
+ struct wlan_network uap_network;
+
+ if ((s_wlan_state != WLAN_STATE_STARTED) || (s_wlan_uap_activated != false))
+ {
+ status = FWLAN_NOT_READY;
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ if ((strlen(ssid) == 0) || (strlen(ssid) > IEEEtypes_SSID_SIZE))
+ {
+ printf("SSID: %s length = %d \r\n", ssid, strlen(ssid));
+ status = FWLAN_BAD_PARAM;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ if (strlen(password) == 0)
+ {
+ security = WLAN_SECURITY_NONE;
+ }
+ else if ((strlen(password) >= FWLAN_WIFI_PASSWORD_MIN_LEN) && (strlen(password) <= FWLAN_WIFI_PASSWORD_LENGTH))
+ {
+ security = WLAN_SECURITY_WPA2;
+ }
+ else
+ {
+ status = FWLAN_BAD_PARAM;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ wlan_initialize_uap_network(&uap_network);
+
+ memcpy(uap_network.ssid, ssid, strlen(ssid));
+ uap_network.ip.ipv4.address = ipaddr_addr(FWLAN_WIFI_AP_IP_ADDR);
+ uap_network.ip.ipv4.gw = ipaddr_addr(FWLAN_WIFI_AP_IP_ADDR);
+ uap_network.channel = chan;
+ uap_network.security.type = security;
+ uap_network.security.psk_len = strlen(password);
+ strncpy(uap_network.security.psk, password, strlen(password));
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ ret = wlan_add_network(&uap_network);
+ if (ret != WM_SUCCESS)
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ xEventGroupClearBits(s_wlan_sync_event, WLAN_SYNC_UAP_START_GROUP);
+
+ ret = wlan_start_network(uap_network.name);
+ if (ret != WM_SUCCESS)
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ else
+ {
+ syncBit =
+ xEventGroupWaitBits(s_wlan_sync_event, WLAN_SYNC_UAP_START_GROUP, pdTRUE, pdFALSE, WLAN_SYNC_TIMEOUT_MS);
+ if (syncBit & WLAN_EVENT_BIT(WLAN_REASON_UAP_SUCCESS))
+ {
+ status = FWLAN_RET_SUCCESS;
+ }
+ else if (syncBit & WLAN_EVENT_BIT(WLAN_REASON_UAP_START_FAILED))
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ else
+ {
+ status = FWLAN_TIMEOUT;
+ }
+ }
+
+ if (status != FWLAN_RET_SUCCESS)
+ {
+ wlan_remove_network(uap_network.name);
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ ret = dhcp_server_start(net_get_uap_handle());
+ if (ret != WM_SUCCESS)
+ {
+ wlan_stop_network(uap_network.name);
+ wlan_remove_network(uap_network.name);
+ status = FWLAN_RET_FAIL;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ s_wlan_uap_activated = true;
+ }
+
+ return status;
+}
+
+FWlanRetStatus FWlanStopAP(void)
+{
+ FWlanRetStatus status = FWLAN_RET_SUCCESS;
+ int ret;
+ EventBits_t syncBit;
+
+ if ((s_wlan_state != WLAN_STATE_STARTED) || (s_wlan_uap_activated != true))
+ {
+ status = FWLAN_NOT_READY;
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ dhcp_server_stop();
+
+ xEventGroupClearBits(s_wlan_sync_event, WLAN_SYNC_UAP_START_GROUP);
+
+ ret = wlan_stop_network(WLAN_UAP_NETWORK_NAME);
+ if (ret != WM_SUCCESS)
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ else
+ {
+ syncBit =
+ xEventGroupWaitBits(s_wlan_sync_event, WLAN_SYNC_UAP_STOP_GROUP, pdTRUE, pdFALSE, WLAN_SYNC_TIMEOUT_MS);
+ if (syncBit & WLAN_EVENT_BIT(WLAN_REASON_UAP_STOPPED))
+ {
+ status = FWLAN_RET_SUCCESS;
+ }
+ else if (syncBit & WLAN_EVENT_BIT(WLAN_REASON_UAP_STOP_FAILED))
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ else
+ {
+ status = FWLAN_TIMEOUT;
+ }
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ ret = wlan_remove_network(WLAN_UAP_NETWORK_NAME);
+ if (ret != WM_SUCCESS)
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ s_wlan_uap_activated = false;
+ }
+
+ return status;
+}
+
+static int WLanProcessResults(unsigned int count)
+{
+ int ret = 0;
+ struct wlan_scan_result scan_result = {0};
+ uint32_t ssids_json_len = count * MAX_JSON_NETWORK_RECORD_LENGTH;
+
+ /* Add length of "{"networks":[]}" */
+ ssids_json_len += 15;
+
+ ssids_json = pvPortMalloc(ssids_json_len);
+ if (ssids_json == NULL)
+ {
+ printf("[!] Memory allocation failed\r\n");
+ xEventGroupSetBits(s_wlan_sync_event, WLAN_EVENT_BIT(WLAN_EVENT_SCAN_DONE));
+ return WM_FAIL;
+ }
+
+ /* Start building JSON */
+ strcpy(ssids_json, "{\"networks\":[");
+ uint32_t ssids_json_idx = strlen(ssids_json);
+
+ for (int i = 0; i < count; i++)
+ {
+ wlan_get_scan_result(i, &scan_result);
+
+ printf("%s\r\n", scan_result.ssid);
+ printf(" BSSID : %02X:%02X:%02X:%02X:%02X:%02X\r\n", (unsigned int)scan_result.bssid[0],
+ (unsigned int)scan_result.bssid[1], (unsigned int)scan_result.bssid[2],
+ (unsigned int)scan_result.bssid[3], (unsigned int)scan_result.bssid[4],
+ (unsigned int)scan_result.bssid[5]);
+ printf(" RSSI : %ddBm\r\n", -(int)scan_result.rssi);
+ printf(" Channel : %d\r\n", (int)scan_result.channel);
+
+ char security[40];
+ security[0] = '\0';
+
+ if (scan_result.wpa2_entp)
+ {
+ strcat(security, "WPA2_ENTP ");
+ }
+ if (scan_result.wep)
+ {
+ strcat(security, "WEP ");
+ }
+ if (scan_result.wpa)
+ {
+ strcat(security, "WPA ");
+ }
+ if (scan_result.wpa2)
+ {
+ strcat(security, "WPA2 ");
+ }
+ if (scan_result.wpa3_sae)
+ {
+ strcat(security, "WPA3_SAE ");
+ }
+
+ if (i != 0)
+ {
+ /* Add ',' separator before next entry */
+ ssids_json[ssids_json_idx++] = ',';
+ }
+
+ ret = snprintf(
+ ssids_json + ssids_json_idx, ssids_json_len - ssids_json_idx - 1,
+ "{\"ssid\":\"%s\",\"bssid\":\"%02X:%02X:%02X:%02X:%02X:%02X\",\"signal\":\"%ddBm\",\"channel\":%d,"
+ "\"security\":\"%s\"}",
+ scan_result.ssid, (unsigned int)scan_result.bssid[0], (unsigned int)scan_result.bssid[1],
+ (unsigned int)scan_result.bssid[2], (unsigned int)scan_result.bssid[3], (unsigned int)scan_result.bssid[4],
+ (unsigned int)scan_result.bssid[5], -(int)scan_result.rssi, (int)scan_result.channel, security);
+ if (ret > 0)
+ {
+ ssids_json_idx += ret;
+ }
+ else
+ {
+ printf("[!] JSON creation failed\r\n");
+ vPortFree(ssids_json);
+ ssids_json = NULL;
+ xEventGroupSetBits(s_wlan_sync_event, WLAN_EVENT_BIT(WLAN_EVENT_SCAN_DONE));
+ return WM_FAIL;
+ }
+ }
+
+ /* End of JSON "]}" */
+ strcpy(ssids_json + ssids_json_idx, "]}");
+
+ xEventGroupSetBits(s_wlan_sync_event, WLAN_EVENT_BIT(WLAN_EVENT_SCAN_DONE));
+ return WM_SUCCESS;
+}
+
+char *FWlanScan(void)
+{
+ FWlanRetStatus status = FWLAN_RET_SUCCESS;
+ int ret;
+ EventBits_t syncBit;
+
+ if (s_wlan_state != WLAN_STATE_STARTED)
+ {
+ status = FWLAN_NOT_READY;
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ ret = wlan_scan(WLanProcessResults);
+ if (ret != WM_SUCCESS)
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ syncBit = xEventGroupWaitBits(s_wlan_sync_event, WLAN_SYNC_SCAN_GROUP, pdTRUE, pdFALSE, WLAN_SYNC_TIMEOUT_MS);
+ if (syncBit & WLAN_EVENT_BIT(WLAN_EVENT_SCAN_DONE))
+ {
+ status = FWLAN_RET_SUCCESS;
+ }
+ else
+ {
+ status = FWLAN_TIMEOUT;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ return ssids_json;
+ }
+
+ return NULL;
+}
+
+FWlanRetStatus FWlanAddNetworkWithSecurity(char *ssid, char *password, char *label, FWlanSecurityType security)
+{
+ FWlanRetStatus status = FWLAN_RET_SUCCESS;
+ int ret;
+ struct wlan_network sta_network;
+ memset(&sta_network, 0, sizeof(struct wlan_network));
+
+ if (s_wlan_state != WLAN_STATE_STARTED)
+ {
+ status = FWLAN_NOT_READY;
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ if ((strlen(label) == 0) || (strlen(label) > (WLAN_NETWORK_NAME_MAX_LENGTH - 1)))
+ {
+ status = FWLAN_BAD_PARAM;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ if ((strlen(ssid) == 0) || (strlen(ssid) > IEEEtypes_SSID_SIZE))
+ {
+ status = FWLAN_BAD_PARAM;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ size_t password_len = strlen(password);
+
+ if (password_len == 0)
+ {
+ sta_network.security.type = WLAN_SECURITY_NONE;
+ }
+ else if ((password_len >= FWLAN_WIFI_PASSWORD_MIN_LEN) && (password_len <= FWLAN_WIFI_PASSWORD_LENGTH))
+ {
+ switch (security)
+ {
+ case FWLAN_SECURITY_WILDCARD:
+ sta_network.security.type = WLAN_SECURITY_WILDCARD;
+ sta_network.security.mfpc = true;
+ sta_network.security.mfpr = true;
+ sta_network.security.password_len = password_len;
+ strncpy(sta_network.security.password, password, password_len);
+ sta_network.security.psk_len = password_len;
+ strncpy(sta_network.security.psk, password, password_len);
+ break;
+ case FWLAN_SECURITY_WPA3_SAE:
+ sta_network.security.type = WLAN_SECURITY_WPA3_SAE;
+ sta_network.security.mfpc = true;
+ sta_network.security.mfpr = true;
+ sta_network.security.password_len = strlen(password);
+ strncpy(sta_network.security.password, password, strlen(password));
+ break;
+ default:
+ printf("[!] Unimplemented security type (%d)\r\n", security);
+ status = FWLAN_BAD_PARAM;
+ break;
+ }
+ }
+ else
+ {
+ status = FWLAN_BAD_PARAM;
+ }
+ }
+
+ strcpy(sta_network.name, label);
+ strcpy(sta_network.ssid, ssid);
+ sta_network.ip.ipv4.addr_type = ADDR_TYPE_DHCP;
+ sta_network.ssid_specific = 1;
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ ret = wlan_add_network(&sta_network);
+ if (ret != WM_SUCCESS)
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ }
+
+ return status;
+}
+
+FWlanRetStatus FWlanAddNetwork(char *ssid, char *password, char *label)
+{
+ return FWlanAddNetworkWithSecurity(ssid, password, label, FWLAN_SECURITY_WILDCARD);
+}
+
+FWlanRetStatus FWlanRemoveNetwork(char *label)
+{
+ FWlanRetStatus status = FWLAN_RET_SUCCESS;
+ int ret;
+
+ if (s_wlan_state != WLAN_STATE_STARTED)
+ {
+ status = FWLAN_NOT_READY;
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ if ((strlen(label) == 0) || (strlen(label) > (WLAN_NETWORK_NAME_MAX_LENGTH - 1)))
+ {
+ status = FWLAN_BAD_PARAM;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ ret = wlan_remove_network(label);
+ if (ret != WM_SUCCESS)
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ }
+
+ return status;
+}
+
+FWlanRetStatus FWlanJoin(char *label)
+{
+ FWlanRetStatus status = FWLAN_RET_SUCCESS;
+ int ret;
+ EventBits_t syncBit;
+
+ if ((s_wlan_state != WLAN_STATE_STARTED) || (s_wlan_sta_connected != false))
+ {
+ status = FWLAN_NOT_READY;
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ if ((strlen(label) == 0) || (strlen(label) > (WLAN_NETWORK_NAME_MAX_LENGTH - 1)))
+ {
+ status = FWLAN_BAD_PARAM;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ xEventGroupClearBits(s_wlan_sync_event, WLAN_SYNC_CONNECT_GROUP);
+
+ ret = wlan_connect(label);
+ if (ret != WM_SUCCESS)
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ syncBit = xEventGroupWaitBits(s_wlan_sync_event, WLAN_SYNC_CONNECT_GROUP, pdTRUE, pdFALSE, WLAN_SYNC_TIMEOUT_MS);
+ if (syncBit & WLAN_EVENT_BIT(WLAN_REASON_SUCCESS))
+ {
+ status = FWLAN_RET_SUCCESS;
+ }
+ else if (syncBit & WLAN_EVENT_BIT(WLAN_REASON_CONNECT_FAILED))
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ else if (syncBit & WLAN_EVENT_BIT(WLAN_REASON_NETWORK_NOT_FOUND))
+ {
+ status = FWLAN_NOT_FOUND;
+ }
+ else if (syncBit & WLAN_EVENT_BIT(WLAN_REASON_NETWORK_AUTH_FAILED))
+ {
+ status = FWLAN_AUTH_FAILED;
+ }
+ else if (syncBit & WLAN_EVENT_BIT(WLAN_REASON_ADDRESS_FAILED))
+ {
+ status = FWLAN_ADDR_FAILED;
+ }
+ else
+ {
+ status = FWLAN_TIMEOUT;
+ }
+
+ if (status != FWLAN_RET_SUCCESS)
+ {
+ /* Abort the next connection attempt */
+ FWlanLeave();
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ s_wlan_sta_connected = true;
+ }
+
+ return status;
+}
+
+FWlanRetStatus FWlanLeave(void)
+{
+ FWlanRetStatus status = FWLAN_RET_SUCCESS;
+ int ret;
+ EventBits_t syncBit;
+
+ if (s_wlan_state != WLAN_STATE_STARTED)
+ {
+ status = FWLAN_NOT_READY;
+ }
+
+ enum wlan_connection_state connection_state = WLAN_DISCONNECTED;
+ wlan_get_connection_state(&connection_state);
+ if (connection_state == WLAN_DISCONNECTED)
+ {
+ s_wlan_sta_connected = false;
+ return FWLAN_RET_SUCCESS;
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ xEventGroupClearBits(s_wlan_sync_event, WLAN_SYNC_DISCONNECT_GROUP);
+
+ ret = wlan_disconnect();
+ if (ret != WM_SUCCESS)
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ syncBit = xEventGroupWaitBits(s_wlan_sync_event, WLAN_SYNC_DISCONNECT_GROUP, pdTRUE, pdFALSE, WLAN_SYNC_TIMEOUT_MS);
+ if (syncBit & WLAN_EVENT_BIT(WLAN_REASON_USER_DISCONNECT))
+ {
+ status = FWLAN_RET_SUCCESS;
+ }
+ else
+ {
+ status = FWLAN_TIMEOUT;
+ }
+ }
+
+ s_wlan_sta_connected = false;
+
+ return status;
+}
+
+FWlanRetStatus FWlanGetIP(char *ip, int client)
+{
+ FWlanRetStatus status = FWLAN_RET_SUCCESS;
+ int ret;
+ struct wlan_ip_config addr;
+
+ if (ip == NULL)
+ {
+ status = FWLAN_RET_FAIL;
+ }
+
+ if (status == FWLAN_RET_SUCCESS)
+ {
+ if (client)
+ {
+ ret = wlan_get_address(&addr);
+ }
+ else
+ {
+ ret = wlan_get_uap_address(&addr);
+ }
+
+ if (ret == WM_SUCCESS)
+ {
+ net_inet_ntoa(addr.ipv4.address, ip);
+ }
+ else
+ {
+ status = FWLAN_RET_FAIL;
+ }
+ }
+
+ return status;
+}
diff --git a/example/network/wlan/src/wlan_station_connect.c b/example/network/wlan/src/wlan_station_connect.c
new file mode 100644
index 0000000000000000000000000000000000000000..f50ba11f8ad6fb0445d9e036ffd1a614cec1584c
--- /dev/null
+++ b/example/network/wlan/src/wlan_station_connect.c
@@ -0,0 +1,167 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: wlan_station_connect.c
+ * Date: 2022-07-12 09:53:00
+ * LastEditTime: 2022-07-12 09:53:02
+ * Description: This file is for providing functions used in cmd_sf.c file.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 zhugengyu 2023/10/19 first commit
+ */
+/***************************** Include Files *********************************/
+#include
+#include
+
+#include "FreeRTOS.h"
+#include "task.h"
+
+#include "fdebug.h"
+#include "fsleep.h"
+#include "fkernel.h"
+
+#include "lwip/tcpip.h"
+#include "ping.h"
+
+#include "wlan_common.h"
+#include "wlan_station_connect.h"
+/************************** Constant Definitions *****************************/
+
+/************************** Variable Definitions *****************************/
+static char ssid[FWLAN_WIFI_SSID_LENGTH];
+static char password[FWLAN_WIFI_PASSWORD_LENGTH];
+static const char *remote_ip_str = '\0';
+static ip_addr_t remote_ip;
+/***************** Macros (Inline Functions) Definitions *********************/
+
+/************************** Function Prototypes ******************************/
+
+/*****************************************************************************/
+
+static FWlanRetStatus promptJoinNetwork(void)
+{
+ FWlanRetStatus result;
+ int i = 0;
+ char ch;
+
+ /* SSID prompt */
+ printf("\r\nSSID: %s \r\n", ssid);
+ /* Password prompt */
+ printf("\r\nPassword: ***** \r\n");
+
+ /* Add Wifi network as known network */
+ result = FWlanAddNetwork(ssid, password, ssid);
+ if (result != FWLAN_RET_SUCCESS)
+ {
+ printf("[!] FWlanAddNetwork: Failed to add network, error: %d\r\n", (uint32_t)result);
+ return FWLAN_RET_FAIL;
+ }
+ printf("[i] FWlanAddNetwork: Success\r\n");
+
+ /* Join the network using label */
+ printf("[i] Trying to join the network...\r\n");
+ result = FWlanJoin(ssid);
+ if (result != FWLAN_RET_SUCCESS)
+ {
+ printf("[!] FWlanJoin: Failed to join network, error: %d\r\n", (uint32_t)result);
+ if (FWlanRemoveNetwork(ssid) != FWLAN_RET_SUCCESS)
+ return FWLAN_RET_FAIL;
+ }
+ printf("[i] FWlanJoin: Success\r\n");
+
+ /* SSID and password was OK, exit the prompt */
+
+ return FWLAN_RET_SUCCESS;
+}
+
+static void WlanStationConnect(void *param)
+{
+ /* prompt user to input a station to join */
+ if (FWLAN_RET_SUCCESS != promptJoinNetwork())
+ {
+ printf("[i] WlanStationConnect: Join network failed\r\n");
+ goto task_exit;
+ }
+
+task_exit:
+ vTaskDelete(NULL);
+}
+
+BaseType_t FFreeRTOSWlanStationConnectInit(const char *usr_ssid, const char *usr_password)
+{
+ if ((strlen(usr_ssid) >= FWLAN_WIFI_SSID_LENGTH) ||
+ (strlen(usr_password) >= FWLAN_WIFI_PASSWORD_LENGTH))
+ {
+ printf("[!] Invalid input parameters\r\n");
+ return pdFAIL;
+ }
+
+ memcpy(ssid, usr_ssid, strlen(usr_ssid));
+ ssid[strlen(usr_ssid)] = '\0';
+ memcpy(password, usr_password, strlen(usr_password));
+ password[strlen(usr_password)] = '\0';
+
+ /* Create the main Task */
+ if (xTaskCreate(WlanStationConnect,
+ "WlanStationConnect",
+ 4096,
+ NULL,
+ (UBaseType_t)configMAX_PRIORITIES - 1,
+ NULL) != pdPASS)
+ {
+ printf("[!] MAIN Task creation failed!\r\n");
+ return pdFAIL;
+ }
+
+ return pdPASS;
+}
+
+static void WlanStationPing(void *param)
+{
+ /* Ping IP address prompt */
+ printf("\r\nIP address: %s\r\n", remote_ip_str);
+ ping_init(&remote_ip, 10U);
+
+ while (TRUE)
+ {
+ vTaskDelay(1000);
+ }
+
+task_exit:
+ vTaskDelete(NULL);
+}
+
+BaseType_t FFreeRTOSWlanStationPing(const char *usr_remote_ip)
+{
+ remote_ip_str = usr_remote_ip;
+ if (ipaddr_aton(usr_remote_ip, &remote_ip) == 0)
+ {
+ return pdFAIL;
+ }
+
+ /* Create the main Task */
+ if (xTaskCreate(WlanStationPing,
+ "WlanStationPing",
+ 4096,
+ NULL,
+ (UBaseType_t)configMAX_PRIORITIES - 1,
+ NULL) != pdPASS)
+ {
+ printf("[!] MAIN Task creation failed!\r\n");
+ return pdFAIL;
+ }
+
+ return pdPASS;
+}
\ No newline at end of file
diff --git a/example/network/wlan/src/wlan_station_scan.c b/example/network/wlan/src/wlan_station_scan.c
new file mode 100644
index 0000000000000000000000000000000000000000..df8417571936ac884a8aeb77911198e15fac172d
--- /dev/null
+++ b/example/network/wlan/src/wlan_station_scan.c
@@ -0,0 +1,106 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: wlan_station_scan.c
+ * Date: 2022-07-12 09:53:00
+ * LastEditTime: 2022-07-12 09:53:02
+ * Description: This file is for providing functions used in cmd_sf.c file.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 zhugengyu 2023/10/19 first commit
+ */
+/***************************** Include Files *********************************/
+#include
+#include
+
+#include "FreeRTOS.h"
+#include "task.h"
+
+#include "fdebug.h"
+#include "fsleep.h"
+#include "fkernel.h"
+
+#include "wlan_common.h"
+#include "wlan_station_scan.h"
+/************************** Constant Definitions *****************************/
+
+/************************** Variable Definitions *****************************/
+
+/***************** Macros (Inline Functions) Definitions *********************/
+
+/************************** Function Prototypes ******************************/
+
+/*****************************************************************************/
+/* Link lost callback */
+static void LinkStatusChangeCallback(bool linkState)
+{
+ if (linkState == false)
+ {
+ printf("-------- LINK LOST --------\r\n");
+ }
+ else
+ {
+ printf("-------- LINK REESTABLISHED --------\r\n");
+ }
+}
+
+void WlanStationScanTask(void *param)
+{
+ FWlanRetStatus result;
+ char *scan_result;
+
+ result = FWlanInit();
+ if (result != FWLAN_RET_SUCCESS)
+ {
+ printf("[!] FWlanInit: Failed, error: %d\r\n", (uint32_t)result);
+ goto task_exit;
+ }
+
+ result = FWlanStart(LinkStatusChangeCallback);
+ if (result != FWLAN_RET_SUCCESS)
+ {
+ printf("[!] FWlanStart: Failed, error: %d\r\n", (uint32_t)result);
+ goto task_exit;
+ }
+
+ scan_result = FWlanScan();
+ if (scan_result == NULL)
+ {
+ printf("[!] FWlanScan: Failed to scan\r\n");
+ goto task_exit;
+ }
+
+ vPortFree(scan_result);
+
+task_exit:
+ vTaskDelete(NULL);
+}
+
+BaseType_t FFreeRTOSWlanStationScanInit(void)
+{
+ /* Create the main Task */
+ if (xTaskCreate(WlanStationScanTask,
+ "WlanStationScanTask",
+ 4096,
+ NULL,
+ (UBaseType_t)configMAX_PRIORITIES - 1,
+ NULL) != pdPASS)
+ {
+ printf("[!] MAIN Task creation failed!\r\n");
+ return pdFAIL;
+ }
+
+ return pdPASS;
+}
\ No newline at end of file
diff --git a/example/peripheral/adc/configs/e2000d_aarch32_demo_adc.config b/example/peripheral/adc/configs/e2000d_aarch32_demo_adc.config
index 3f3eeca930e1f8a7211a437924d2cfa77ac36234..12385dba6180bc03e5b47fba115587aa370ceb0a 100644
--- a/example/peripheral/adc/configs/e2000d_aarch32_demo_adc.config
+++ b/example/peripheral/adc/configs/e2000d_aarch32_demo_adc.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +160,7 @@ CONFIG_USE_FADC=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +200,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -328,7 +330,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -339,10 +340,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -362,4 +365,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/adc/configs/e2000d_aarch64_demo_adc.config b/example/peripheral/adc/configs/e2000d_aarch64_demo_adc.config
index e5f787821f636739eb49978f576200dc8a53d8c4..43944be99c35cae405d909084f873b3bfb6b61a7 100644
--- a/example/peripheral/adc/configs/e2000d_aarch64_demo_adc.config
+++ b/example/peripheral/adc/configs/e2000d_aarch64_demo_adc.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +154,7 @@ CONFIG_USE_FADC=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +194,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +320,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +330,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +355,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/adc/sdkconfig b/example/peripheral/adc/sdkconfig
index e5f787821f636739eb49978f576200dc8a53d8c4..43944be99c35cae405d909084f873b3bfb6b61a7 100644
--- a/example/peripheral/adc/sdkconfig
+++ b/example/peripheral/adc/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +154,7 @@ CONFIG_USE_FADC=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +194,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +320,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +330,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +355,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/adc/sdkconfig.h b/example/peripheral/adc/sdkconfig.h
index 51054e7891f1c0ce649f4524f0ca7cadaae7c2ad..b52fd1345082b3706771dc8f91f99066c3ce546a 100644
--- a/example/peripheral/adc/sdkconfig.h
+++ b/example/peripheral/adc/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -115,8 +111,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -147,6 +141,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -182,7 +177,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -286,7 +282,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -297,9 +292,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -319,6 +316,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/peripheral/can/Kconfig b/example/peripheral/can/can/Kconfig
similarity index 100%
rename from example/peripheral/can/Kconfig
rename to example/peripheral/can/can/Kconfig
diff --git a/example/peripheral/can/can/README.md b/example/peripheral/can/can/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..0b481378fc54be24f96be6e12b675aa785ea37af
--- /dev/null
+++ b/example/peripheral/can/can/README.md
@@ -0,0 +1,150 @@
+# can base on freertos
+
+## 1. 例程介绍
+
+本例程示范了freertos环境下的can的使用,包括can的初始化、can周期发送,接收操作;
+程序启动后,创建can初始化任务,设置can波特率,中断函数、id mask等;
+创建can定时发送任务FFreeRTOSCanSendTask,用于定时发送can报文;
+创建can接收任务FFreeRTOSCanRecvTask,用于接收can报文;
+使用B板进行测试,选择can0和can1回环;
+
+CAN中断模式回环测试例程 (can_intr_loopback_mode_example.c)
+
+- 初始化CAN0,CAN1基本配置,仲裁域波特率和数据域波特率配置为 1M/S+1M/S,设置滤波器,初始化中断函数
+- 中断触发CAN0发送,CAN1接收,循环收发标准帧。并比对发送帧和接收帧是否相同
+- 中断触发CAN1发送,CAN0接收,循环收发标准帧。并比对发送帧和接收帧是否相同
+- 中断触发CAN0发送,CAN1接收,循环收发扩展帧。并比对发送帧和接收帧是否相同
+- 中断触发CAN1发送,CAN0接收,循环收发扩展帧。并比对发送帧和接收帧是否相同
+- 以上收发测试完成后,去初始化CAN0,CAN1,删除发送接收任务
+
+CAN轮询模式回环测试例程 (can_polled_loopback_mode_example.c)
+
+- 初始化CAN0,CAN1基本配置,仲裁域波特率和数据域波特率配置为 1M/S+1M/S,设置滤波器
+- CAN0发送,CAN1接收,循环收发标准帧。并比对发送帧和接收帧是否相同
+- CAN1发送,CAN0接收,循环收发标准帧。并比对发送帧和接收帧是否相同
+- CAN0发送,CAN1接收,循环收发扩展帧。并比对发送帧和接收帧是否相同
+- CAN1发送,CAN0接收,循环收发扩展帧。并比对发送帧和接收帧是否相同
+- 以上收发测试完成后,去初始化CAN0,CAN1,删除发送接收任务
+
+CAN过滤功能测试例程 (can_id_filter_example.c)
+
+- 初始化CAN0,CAN1基本配置,仲裁域波特率和数据域波特率配置为 1M/S+1M/S
+- 过滤模式1配置为只可接收id为0x0F的帧
+- CAN0向CAN1发送id为(0x00~0x0F)的标准帧,CAN1成功接收id=0x0F的帧,表示成功过滤除0x0F以外的所有帧
+- CAN1向CAN0发送id为(0x00~0x0F)的标准帧,CAN0成功接收id=0x0F的帧,表示成功过滤除0x0F以外的所有帧
+- 过滤模式2配置为比较较高的两位,忽略较低的两位
+- CAN0向CAN1发送id为(0x00~0x0F)的标准帧,CAN1成功接收id=0x0C、0x0D、 0x0E、0x0F的帧
+- CAN1向CAN0发送id为(0x00~0x0F)的标准帧,CAN0成功接收id=0x0C、0x0D、 0x0E、0x0F的帧
+- 以上收发测试完成后,去初始化CAN0,CAN1,删除发送接收任务
+
+## 2. 如何使用例程
+
+本例程需要用到
+
+- Phytium开发板(E2000D/E2000Q/D2000/FT2000-4)
+- [Phytium freeRTOS SDK](https://gitee.com/phytium_embedded/phytium-free-rtos-sdk)
+- [Phytium standalone SDK](https://gitee.com/phytium_embedded/phytium-standalone-sdk)
+
+### 2.1 硬件配置方法
+
+本例程支持的硬件平台包括
+
+- FT2000-4
+- D2000
+- E2000D
+- E2000Q
+
+对应的配置项是,
+
+- CONFIG_TARGET_FT2004
+- CONFIG_TARGET_D2000
+- CONFIG_TARGET_E2000D
+- CONFIG_TARGET_E2000Q
+
+### 2.2 SDK配置方法
+
+本例程需要,
+
+- 使能Shell
+- 使能Can
+
+对应的配置项是,
+
+- CONFIG_USE_LETTER_SHELL
+- CONFIG_FREERTOS_USE_CAN
+- CONFIG_USE_CAN
+
+本例子已经提供好具体的编译指令,以下进行介绍:
+
+- make 将目录下的工程进行编译
+- make clean 将目录下的工程进行清理
+- make image 将目录下的工程进行编译,并将生成的elf 复制到目标地址
+- make list_kconfig 当前工程支持哪些配置文件
+- make load_kconfig LOAD_CONFIG_NAME=`` 将预设配置加载至工程中
+- make menuconfig 配置目录下的参数变量
+- make backup_kconfig 将目录下的sdkconfig 备份到./configs下
+
+具体使用方法为:
+
+- 在当前目录下
+- 执行以上指令
+
+### 2.3 构建和下载
+
+> ``描述构建、烧录下载镜像的过程,列出相关的命令 `
`
+
+[参考 freertos 使用说明](../../../../docs/reference/usr/usage.md)
+
+#### 2.3.1 下载过程
+
+- host侧设置重启host侧tftp服务器
+
+```
+sudo service tftpd-hpa restart
+```
+
+- 开发板侧使用bootelf命令跳转
+
+```
+setenv ipaddr 192.168.4.20
+setenv serverip 192.168.4.50
+setenv gatewayip 192.168.4.1
+tftpboot 0x90100000 freertos.elf
+bootelf -p 0x90100000
+```
+
+### 2.4 输出与实验现象
+
+- 系统进入后,输入 ``can``查看指令说明
+- 执行相应的测试例子,创建测试任务
+- 测试任务能够能正常创建和删除,输入 ``ps``查看任务状态正常,即测试正常
+
+
+
+- 输入 ``can intr``,启动can中断模式发送接收测试例子,测试完标准帧和扩展帧后自动删除任务
+
+
+......
+
+
+- 输入 ``can polled``,启动can轮询模式发送接收测试例子,测试完标准帧和扩展帧后自动删除任务
+
+
+......
+
+
+- 输入 ``can filter``,启动can id滤波功能测试例子,测试1只接收id=0x0F的帧,测试2接收帧id&mask(mask=0x03,结果为0表示比较,为1表示忽略),比较接收id和接收id&maskid(maskid=0x0F)的结果。全部匹配则接收否则滤除。
+滤波测试例子1
+
+......
+
+滤波测试例子2
+
+......
+
+
+## 3. 如何解决问题
+
+- 使用can0和can1进行回环测试时,需要将can0和can1的H和L信号线分别进行短接
+
+## 4. 修改历史记录
diff --git a/example/peripheral/can/configs/d2000_aarch32_test_can.config b/example/peripheral/can/can/configs/d2000_aarch32_test_can.config
similarity index 96%
rename from example/peripheral/can/configs/d2000_aarch32_test_can.config
rename to example/peripheral/can/can/configs/d2000_aarch32_test_can.config
index c681098f22cbb25bcc8afef3211d62abaccff241..d1cc0b795435a09cd34ccb9fcbdff2aac5442c1b 100644
--- a/example/peripheral/can/configs/d2000_aarch32_test_can.config
+++ b/example/peripheral/can/can/configs/d2000_aarch32_test_can.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +111,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -147,6 +145,7 @@ CONFIG_USE_FCAN=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -186,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -315,7 +315,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -326,10 +325,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -349,4 +349,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/can/configs/d2000_aarch64_test_can.config b/example/peripheral/can/can/configs/d2000_aarch64_test_can.config
similarity index 96%
rename from example/peripheral/can/configs/d2000_aarch64_test_can.config
rename to example/peripheral/can/can/configs/d2000_aarch64_test_can.config
index 92606bba1a4680df1f3497b62fa0e356d5c850ef..fcb2c9661d7e0587149e6859acc2ca86ce3d0afc 100644
--- a/example/peripheral/can/configs/d2000_aarch64_test_can.config
+++ b/example/peripheral/can/can/configs/d2000_aarch64_test_can.config
@@ -113,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -149,6 +147,7 @@ CONFIG_USE_FCAN=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -188,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -313,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -324,10 +323,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -347,4 +347,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/can/configs/e2000d_aarch32_demo_can.config b/example/peripheral/can/can/configs/e2000d_aarch32_demo_can.config
similarity index 97%
rename from example/peripheral/can/configs/e2000d_aarch32_demo_can.config
rename to example/peripheral/can/can/configs/e2000d_aarch32_demo_can.config
index b3cf3d309f242bc89c2fb6bc83a8f93efd58c62c..d72bd4ebe85c1d9639e76a9a50214d703e080110 100644
--- a/example/peripheral/can/configs/e2000d_aarch32_demo_can.config
+++ b/example/peripheral/can/can/configs/e2000d_aarch32_demo_can.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +159,7 @@ CONFIG_FCAN_USE_CANFD=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +199,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -329,7 +329,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -340,10 +339,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -363,4 +363,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/can/configs/e2000d_aarch64_demo_can.config b/example/peripheral/can/can/configs/e2000d_aarch64_demo_can.config
similarity index 96%
rename from example/peripheral/can/configs/e2000d_aarch64_demo_can.config
rename to example/peripheral/can/can/configs/e2000d_aarch64_demo_can.config
index cbf49e65b01325ccd921cb97d4f8c0bf252068ae..54b2b6fe6cee70d609d01e1b69d9221de1b0b9aa 100644
--- a/example/peripheral/can/configs/e2000d_aarch64_demo_can.config
+++ b/example/peripheral/can/can/configs/e2000d_aarch64_demo_can.config
@@ -126,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -163,6 +161,7 @@ CONFIG_FCAN_USE_CANFD=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -202,7 +201,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +327,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +337,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +361,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/can/configs/e2000q_aarch32_demo_can.config b/example/peripheral/can/can/configs/e2000q_aarch32_demo_can.config
similarity index 96%
rename from example/peripheral/can/configs/e2000q_aarch32_demo_can.config
rename to example/peripheral/can/can/configs/e2000q_aarch32_demo_can.config
index 2ba266bef7fd8a4a02f314152505f25227b040c4..f850eba607947327e73f1589e6c53136d455fae3 100644
--- a/example/peripheral/can/configs/e2000q_aarch32_demo_can.config
+++ b/example/peripheral/can/can/configs/e2000q_aarch32_demo_can.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +123,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +158,7 @@ CONFIG_FCAN_USE_CANFD=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +198,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -328,7 +328,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -339,10 +338,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -362,4 +362,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/can/configs/e2000q_aarch64_demo_can.config b/example/peripheral/can/can/configs/e2000q_aarch64_demo_can.config
similarity index 96%
rename from example/peripheral/can/configs/e2000q_aarch64_demo_can.config
rename to example/peripheral/can/can/configs/e2000q_aarch64_demo_can.config
index 956e2bef4f7af78615ecbb186c50ef055e218c13..40e601149cf36e6440e8f093df1f354105b79136 100644
--- a/example/peripheral/can/configs/e2000q_aarch64_demo_can.config
+++ b/example/peripheral/can/can/configs/e2000q_aarch64_demo_can.config
@@ -125,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +160,7 @@ CONFIG_FCAN_USE_CANFD=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +200,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +326,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +336,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +360,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/can/configs/ft2004_aarch32_dsk_can.config b/example/peripheral/can/can/configs/ft2004_aarch32_dsk_can.config
similarity index 96%
rename from example/peripheral/can/configs/ft2004_aarch32_dsk_can.config
rename to example/peripheral/can/can/configs/ft2004_aarch32_dsk_can.config
index a13804eb39e195c1e10e0fe5e442c4997a28aed5..6e8aa9ed4fc76507309f6e41bd79a38f6b72ebf0 100644
--- a/example/peripheral/can/configs/ft2004_aarch32_dsk_can.config
+++ b/example/peripheral/can/can/configs/ft2004_aarch32_dsk_can.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +111,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -147,6 +145,7 @@ CONFIG_USE_FCAN=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -186,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -315,7 +315,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -326,10 +325,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -349,4 +349,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/can/configs/ft2004_aarch64_dsk_can.config b/example/peripheral/can/can/configs/ft2004_aarch64_dsk_can.config
similarity index 96%
rename from example/peripheral/can/configs/ft2004_aarch64_dsk_can.config
rename to example/peripheral/can/can/configs/ft2004_aarch64_dsk_can.config
index 8607926ba888d2ff373a2fe82c82b834e0dbec32..d14f134be89c87af70666fb21aadca8e27348087 100644
--- a/example/peripheral/can/configs/ft2004_aarch64_dsk_can.config
+++ b/example/peripheral/can/can/configs/ft2004_aarch64_dsk_can.config
@@ -113,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -149,6 +147,7 @@ CONFIG_USE_FCAN=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -188,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -313,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -324,10 +323,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -347,4 +347,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/can/can/figs/can.png b/example/peripheral/can/can/figs/can.png
new file mode 100644
index 0000000000000000000000000000000000000000..e76199a3572cf7f4ee74c72cdc54981b5b9fc959
Binary files /dev/null and b/example/peripheral/can/can/figs/can.png differ
diff --git a/example/peripheral/can/can/figs/delete.png b/example/peripheral/can/can/figs/delete.png
new file mode 100644
index 0000000000000000000000000000000000000000..d15e84c909aa8b17840c7ca0ff75114847122a60
Binary files /dev/null and b/example/peripheral/can/can/figs/delete.png differ
diff --git a/example/peripheral/can/can/figs/filter.png b/example/peripheral/can/can/figs/filter.png
new file mode 100644
index 0000000000000000000000000000000000000000..3acf610177fa1f9ac5d5fa3eb423aa0b3ba133a4
Binary files /dev/null and b/example/peripheral/can/can/figs/filter.png differ
diff --git a/example/peripheral/can/can/figs/filter1.png b/example/peripheral/can/can/figs/filter1.png
new file mode 100644
index 0000000000000000000000000000000000000000..6532dfefe9a6625c57d1dbd86ce2d334f0ed205c
Binary files /dev/null and b/example/peripheral/can/can/figs/filter1.png differ
diff --git a/example/peripheral/can/can/figs/filter1_success.png b/example/peripheral/can/can/figs/filter1_success.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd015c3f1cb56ce16a68e30e45d42b1a48875022
Binary files /dev/null and b/example/peripheral/can/can/figs/filter1_success.png differ
diff --git a/example/peripheral/can/can/figs/filter2.png b/example/peripheral/can/can/figs/filter2.png
new file mode 100644
index 0000000000000000000000000000000000000000..cb2824f66c8bf1d2b5d4fcda923db8ddaa886968
Binary files /dev/null and b/example/peripheral/can/can/figs/filter2.png differ
diff --git a/example/peripheral/can/can/figs/filter2_success.png b/example/peripheral/can/can/figs/filter2_success.png
new file mode 100644
index 0000000000000000000000000000000000000000..f7e5278ae12de2a4ede3cb21825b3b1898b6c788
Binary files /dev/null and b/example/peripheral/can/can/figs/filter2_success.png differ
diff --git a/example/peripheral/can/can/figs/intr.png b/example/peripheral/can/can/figs/intr.png
new file mode 100644
index 0000000000000000000000000000000000000000..421484967165facb33d203898274429c21208039
Binary files /dev/null and b/example/peripheral/can/can/figs/intr.png differ
diff --git a/example/peripheral/can/can/figs/intr_exid.png b/example/peripheral/can/can/figs/intr_exid.png
new file mode 100644
index 0000000000000000000000000000000000000000..192d3152aff3774d0d122d8daa5972ef21f92d3b
Binary files /dev/null and b/example/peripheral/can/can/figs/intr_exid.png differ
diff --git a/example/peripheral/can/can/figs/intr_stid.png b/example/peripheral/can/can/figs/intr_stid.png
new file mode 100644
index 0000000000000000000000000000000000000000..c50eefe9362862235d5d9608b337a8948419a3ca
Binary files /dev/null and b/example/peripheral/can/can/figs/intr_stid.png differ
diff --git a/example/peripheral/can/can/figs/polled.png b/example/peripheral/can/can/figs/polled.png
new file mode 100644
index 0000000000000000000000000000000000000000..c5779a9fb072cbc7ff65f3615e032c25d2fe1055
Binary files /dev/null and b/example/peripheral/can/can/figs/polled.png differ
diff --git a/example/peripheral/can/can/figs/polled_exid.png b/example/peripheral/can/can/figs/polled_exid.png
new file mode 100644
index 0000000000000000000000000000000000000000..5959bbeb4bdbfddad33b3d194be80873442b1e27
Binary files /dev/null and b/example/peripheral/can/can/figs/polled_exid.png differ
diff --git a/example/peripheral/can/can/figs/polled_stid.png b/example/peripheral/can/can/figs/polled_stid.png
new file mode 100644
index 0000000000000000000000000000000000000000..cfbd5184e04f28c90da699b56c19d004ce962eca
Binary files /dev/null and b/example/peripheral/can/can/figs/polled_stid.png differ
diff --git a/example/peripheral/can/inc/can_example.h b/example/peripheral/can/can/inc/can_example.h
similarity index 81%
rename from example/peripheral/can/inc/can_example.h
rename to example/peripheral/can/can/inc/can_example.h
index 04e1b61616b607af7c648f66057ce83ae3cef0a4..3251af4bd1544d7d167a24da95086389ab7e18f7 100644
--- a/example/peripheral/can/inc/can_example.h
+++ b/example/peripheral/can/can/inc/can_example.h
@@ -20,19 +20,24 @@
* Ver Who Date Changes
* ----- ------ -------- --------------------------------------
* 1.0 wangxiaodong 2022/09/23 first commit
+ * 2.0 huangjin 2023/10/17 add function
*/
#ifndef CAN_EXAMPLE_H
#define CAN_EXAMPLE_H
+#include "portmacro.h"
+
#ifdef __cplusplus
extern "C"
{
#endif
-/* adc test */
-BaseType_t FFreeRTOSCanCreate(void);
+/* can test */
+BaseType_t FFreeRTOSCreateCanIntrTestTask(void);
+BaseType_t FFreeRTOSCreateCanPolledTestTask(void);
+BaseType_t FFreeRTOSCanCreateFilterTestTask(void);
#ifdef __cplusplus
}
diff --git a/example/peripheral/can/main.c b/example/peripheral/can/can/main.c
similarity index 91%
rename from example/peripheral/can/main.c
rename to example/peripheral/can/can/main.c
index 40b4c136ef4510ed8b94df8218aa439c0b712d71..b49c7dc2040ac413ff323f76fee169992c88bcfa 100644
--- a/example/peripheral/can/main.c
+++ b/example/peripheral/can/can/main.c
@@ -31,13 +31,6 @@ int main(void)
{
BaseType_t ret;
- /* test can 0 and can 1, loopback */
- ret = FFreeRTOSCanCreate();
- if (ret != pdPASS)
- {
- goto FAIL_EXIT;
- }
-
ret = LSUserShellTask() ;
if (ret != pdPASS)
{
diff --git a/example/peripheral/can/makefile b/example/peripheral/can/can/makefile
similarity index 87%
rename from example/peripheral/can/makefile
rename to example/peripheral/can/can/makefile
index 13c14898d0f8ad5159f3e5baa6067deda58349eb..941abe469ed0be7dc0390def62cecbeba1bb14d9 100644
--- a/example/peripheral/can/makefile
+++ b/example/peripheral/can/can/makefile
@@ -1,6 +1,6 @@
PROJECT_DIR = $(CURDIR)
-FREERTOS_SDK_DIR = $(CURDIR)/../../..
+FREERTOS_SDK_DIR = $(CURDIR)/../../../..
# # 设置启动镜像名
@@ -8,7 +8,6 @@ BOOT_IMG_NAME ?= freertos
USER_CSRC := main.c
USER_CSRC += $(wildcard src/*.c)
-USER_CSRC += $(wildcard ../common/*.c)
USER_ASRC :=
USER_CXXSRC :=
diff --git a/example/peripheral/sdio/sdkconfig b/example/peripheral/can/can/sdkconfig
similarity index 90%
rename from example/peripheral/sdio/sdkconfig
rename to example/peripheral/can/can/sdkconfig
index 3e43f979f643e89dded55a8820db0a83e9e3e794..75ddcdac0cb9e34fde18c7d373d967046dae5498 100644
--- a/example/peripheral/sdio/sdkconfig
+++ b/example/peripheral/can/can/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -45,14 +39,15 @@ CONFIG_USE_MMU=y
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
-# CONFIG_TARGET_E2000D is not set
+CONFIG_TARGET_E2000D=y
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="d"
+CONFIG_SOC_CORE_NUM=2
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
@@ -67,21 +62,22 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
+CONFIG_E2000D_DEMO_BOARD=y
+CONFIG_BOARD_NAME="demo"
+
+#
+# IO mux configuration when board start up
+#
# CONFIG_USE_SPI_IOPAD is not set
# CONFIG_USE_GPIO_IOPAD is not set
# CONFIG_USE_CAN_IOPAD is not set
# CONFIG_USE_QSPI_IOPAD is not set
# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_ADC_IOPAD is not set
# CONFIG_USE_MIO_IOPAD is not set
# CONFIG_USE_TACHO_IOPAD is not set
# CONFIG_USE_UART_IOPAD is not set
# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
# end of IO mux configuration when board start up
# CONFIG_CUS_DEMO_BOARD is not set
@@ -89,7 +85,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
-CONFIG_TARGET_NAME="sdio"
+CONFIG_TARGET_NAME="can"
# end of Build project name
# end of Board Configuration
@@ -98,11 +94,11 @@ CONFIG_TARGET_NAME="sdio"
#
# CONFIG_LOG_VERBOS is not set
# CONFIG_LOG_DEBUG is not set
-# CONFIG_LOG_INFO is not set
+CONFIG_LOG_INFO=y
# CONFIG_LOG_WARN is not set
-CONFIG_LOG_ERROR=y
+# CONFIG_LOG_ERROR is not set
# CONFIG_LOG_NONE is not set
-CONFIG_LOG_EXTRA_INFO=y
+# CONFIG_LOG_EXTRA_INFO is not set
# CONFIG_LOG_DISPALY_CORE_NUM is not set
# CONFIG_BOOTUP_DEBUG_PRINTS is not set
CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
@@ -124,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -136,13 +130,12 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_GPIO is not set
# CONFIG_USE_ETH is not set
-# CONFIG_USE_CAN is not set
+CONFIG_USE_CAN=y
+CONFIG_USE_FCAN=y
# CONFIG_USE_I2C is not set
# CONFIG_USE_TIMER is not set
# CONFIG_USE_MIO is not set
-CONFIG_USE_SDMMC=y
-# CONFIG_ENABLE_FSDMMC is not set
-CONFIG_ENABLE_FSDIO=y
+# CONFIG_USE_SDMMC is not set
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
@@ -155,6 +148,7 @@ CONFIG_ENABLE_FSDIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +188,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -275,7 +270,7 @@ CONFIG_FREERTOS_USE_UART=y
#
# Freertos Can Drivers
#
-# CONFIG_FREERTOS_USE_CAN is not set
+CONFIG_FREERTOS_USE_CAN=y
# end of Freertos Can Drivers
#
@@ -319,29 +314,22 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-CONFIG_USE_SDMMC_CMD=y
-
-#
-# Sdmmc configuration
-#
-# CONFIG_SDMMC_USE_FSDMMC is not set
-CONFIG_SDMMC_USE_FSDIO=y
-# end of Sdmmc configuration
-
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
# CONFIG_USE_FATFS_0_1_4 is not set
-CONFIG_USE_TLSF=y
+# CONFIG_USE_TLSF is not set
# CONFIG_USE_SPIFFS is not set
# CONFIG_USE_LITTLE_FS is not set
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +349,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/sdio/sdkconfig.h b/example/peripheral/can/can/sdkconfig.h
similarity index 90%
rename from example/peripheral/sdio/sdkconfig.h
rename to example/peripheral/can/can/sdkconfig.h
index 330cb386e145740c0ab637c0fa354ad9024e045c..de14fca19bcb32fbfefbd191fb7e25f7cc3b71c4 100644
--- a/example/peripheral/sdio/sdkconfig.h
+++ b/example/peripheral/can/can/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -41,14 +37,15 @@
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
-/* CONFIG_TARGET_E2000D is not set */
+#define CONFIG_TARGET_E2000D
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "e2000"
+#define CONFIG_TARGET_TYPE_NAME "d"
+#define CONFIG_SOC_CORE_NUM 2
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
@@ -62,26 +59,27 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
+#define CONFIG_E2000D_DEMO_BOARD
+#define CONFIG_BOARD_NAME "demo"
+
+/* IO mux configuration when board start up */
+
/* CONFIG_USE_SPI_IOPAD is not set */
/* CONFIG_USE_GPIO_IOPAD is not set */
/* CONFIG_USE_CAN_IOPAD is not set */
/* CONFIG_USE_QSPI_IOPAD is not set */
/* CONFIG_USE_PWM_IOPAD is not set */
+/* CONFIG_USE_ADC_IOPAD is not set */
/* CONFIG_USE_MIO_IOPAD is not set */
/* CONFIG_USE_TACHO_IOPAD is not set */
/* CONFIG_USE_UART_IOPAD is not set */
/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
/* end of IO mux configuration when board start up */
/* CONFIG_CUS_DEMO_BOARD is not set */
/* Build project name */
-#define CONFIG_TARGET_NAME "sdio"
+#define CONFIG_TARGET_NAME "can"
/* end of Build project name */
/* end of Board Configuration */
@@ -89,11 +87,11 @@
/* CONFIG_LOG_VERBOS is not set */
/* CONFIG_LOG_DEBUG is not set */
-/* CONFIG_LOG_INFO is not set */
+#define CONFIG_LOG_INFO
/* CONFIG_LOG_WARN is not set */
-#define CONFIG_LOG_ERROR
+/* CONFIG_LOG_ERROR is not set */
/* CONFIG_LOG_NONE is not set */
-#define CONFIG_LOG_EXTRA_INFO
+/* CONFIG_LOG_EXTRA_INFO is not set */
/* CONFIG_LOG_DISPALY_CORE_NUM is not set */
/* CONFIG_BOOTUP_DEBUG_PRINTS is not set */
#define CONFIG_USE_DEFAULT_INTERRUPT_CONFIG
@@ -113,8 +111,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -123,13 +119,12 @@
/* end of Usart Configuration */
/* CONFIG_USE_GPIO is not set */
/* CONFIG_USE_ETH is not set */
-/* CONFIG_USE_CAN is not set */
+#define CONFIG_USE_CAN
+#define CONFIG_USE_FCAN
/* CONFIG_USE_I2C is not set */
/* CONFIG_USE_TIMER is not set */
/* CONFIG_USE_MIO is not set */
-#define CONFIG_USE_SDMMC
-/* CONFIG_ENABLE_FSDMMC is not set */
-#define CONFIG_ENABLE_FSDIO
+/* CONFIG_USE_SDMMC is not set */
/* CONFIG_USE_PCIE is not set */
/* CONFIG_USE_WDT is not set */
/* CONFIG_USE_DMA is not set */
@@ -142,6 +137,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -177,7 +173,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -244,7 +241,7 @@
/* Freertos Can Drivers */
-/* CONFIG_FREERTOS_USE_CAN is not set */
+#define CONFIG_FREERTOS_USE_CAN
/* end of Freertos Can Drivers */
/* Freertos I2c Drivers */
@@ -281,26 +278,21 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-#define CONFIG_USE_SDMMC_CMD
-
-/* Sdmmc configuration */
-
-/* CONFIG_SDMMC_USE_FSDMMC is not set */
-#define CONFIG_SDMMC_USE_FSDIO
-/* end of Sdmmc configuration */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
/* CONFIG_USE_FATFS_0_1_4 is not set */
-#define CONFIG_USE_TLSF
+/* CONFIG_USE_TLSF is not set */
/* CONFIG_USE_SPIFFS is not set */
/* CONFIG_USE_LITTLE_FS is not set */
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -320,6 +312,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/peripheral/can/can/src/can_id_filter_example.c b/example/peripheral/can/can/src/can_id_filter_example.c
new file mode 100644
index 0000000000000000000000000000000000000000..0083bc0ebadb26284d247eec9a401e223d520160
--- /dev/null
+++ b/example/peripheral/can/can/src/can_id_filter_example.c
@@ -0,0 +1,477 @@
+/*
+ * Copyright : (C) 2023 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: can_id_filter_example.c
+ * Date: 2023-10-07 14:53:42
+ * LastEditTime: 2023-10-20 17:46:03
+ * Description: This file is for can id filter example function implmentation
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2023/10/7 first release
+ */
+
+/***************************** Include Files *********************************/
+#include
+#include
+#include "FreeRTOSConfig.h"
+#include "FreeRTOS.h"
+#include "task.h"
+#include "timers.h"
+#include "fcan.h"
+#include "fcan_os.h"
+#include "fcpu_info.h"
+#include "fio_mux.h"
+#include "fassert.h"
+#include "fdebug.h"
+
+/************************** Constant Definitions *****************************/
+#define FCAN_TEST_DEBUG_TAG "FCAN_FREERTOS_FILTER_TEST"
+#define FCAN_TEST_DEBUG(format, ...) FT_DEBUG_PRINT_D(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FCAN_TEST_INFO(format, ...) FT_DEBUG_PRINT_I(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FCAN_TEST_WARN(format, ...) FT_DEBUG_PRINT_W(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FCAN_TEST_ERROR(format, ...) FT_DEBUG_PRINT_E(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+
+/* can frame config */
+#define FCAN_SEND_LENGTH 8
+#define FCAN_FILTER_ID 0X02
+
+/* can send period */
+#define CAN_SEND_PERIOD ( pdMS_TO_TICKS( 100UL ))
+
+/* can baudrate */
+#define ARB_BAUD_RATE 1000000
+#define DATA_BAUD_RATE 1000000
+
+/**************************** Type Definitions *******************************/
+typedef struct
+{
+ u32 count;
+ FFreeRTOSCan *os_can_p;
+} FCanQueueData;
+/************************** Variable Definitions *****************************/
+/* Declare a variable of type QueueHandle_t. This is used to store the queue that is accessed by all three tasks. */
+static QueueHandle_t xQueue;
+
+static xSemaphoreHandle test_semaphore;
+
+static xTaskHandle send_handle;
+static xTaskHandle recv_handle;
+
+static FFreeRTOSCan *os_can_ctrl_p[FCAN_NUM];
+
+static FCanFrame send_frame[FCAN_NUM];
+static FCanFrame recv_frame[FCAN_NUM];
+
+static void FFreeRTOSCanSendTask(void *pvParameters);
+static void FFreeRTOSCanRecvTask(void *pvParameters);
+static void FFreeRTOSCanDelete(void);
+
+/***************** Macros (Inline Functions) Definitions *********************/
+
+/************************** Function Prototypes ******************************/
+
+/************************** Function *****************************************/
+static void FCanTxIrqCallback(void *args)
+{
+ FFreeRTOSCan *os_can_p = (FFreeRTOSCan *)args;
+ FCAN_TEST_DEBUG("Can%d irq send frame is ok.", os_can_p->can_ctrl.config.instance_id);
+}
+
+static void FCanRxIrqCallback(void *args)
+{
+ FFreeRTOSCan *os_can_p = (FFreeRTOSCan *)args;
+ FCAN_TEST_DEBUG("Can%d irq recv frame callback.", os_can_p->can_ctrl.config.instance_id);
+
+ static FCanQueueData xSendStructure;
+ xSendStructure.os_can_p = os_can_p;
+
+ portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
+
+ xQueueSendToBackFromISR(xQueue, &xSendStructure, &xHigherPriorityTaskWoken);
+
+ /* never call taskYIELD() form ISR! */
+ portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
+}
+
+static FError FFreeRTOSCanIntrSet(FFreeRTOSCan *os_can_p)
+{
+ FError ret = FCAN_SUCCESS;
+
+ FCanIntrEventConfig intr_event;
+ memset(&intr_event, 0, sizeof(intr_event));
+
+ intr_event.type = FCAN_INTR_EVENT_SEND;
+ intr_event.handler = FCanTxIrqCallback;
+ intr_event.param = (void *)os_can_p;
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_INTR_SET, &intr_event);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FCAN_INTR_EVENT_SEND failed.");
+ return ret;
+ }
+
+ intr_event.type = FCAN_INTR_EVENT_RECV;
+ intr_event.handler = FCanRxIrqCallback;
+ intr_event.param = (void *)os_can_p;
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_INTR_SET, &intr_event);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FCAN_INTR_EVENT_RECV failed.");
+ return ret;
+ }
+
+ u32 cpu_id;
+ GetCpuId(&cpu_id);
+ FCanCtrl *instance_p = &os_can_p->can_ctrl;
+ InterruptSetTargetCpus(instance_p->config.irq_num, cpu_id);
+ InterruptSetPriority(instance_p->config.irq_num, instance_p->config.irq_prority);
+ InterruptInstall(instance_p->config.irq_num, FCanIntrHandler, instance_p, "can");
+ InterruptUmask(instance_p->config.irq_num);
+
+ return ret;
+}
+
+
+static FError FFreeRTOSCanBaudrateSet(FFreeRTOSCan *os_can_p)
+{
+ FError ret = FCAN_SUCCESS;
+
+ FCanBaudrateConfig arb_segment_config;
+ FCanBaudrateConfig data_segment_config;
+ memset(&arb_segment_config, 0, sizeof(arb_segment_config));
+ memset(&data_segment_config, 0, sizeof(data_segment_config));
+ arb_segment_config.baudrate = ARB_BAUD_RATE;
+ arb_segment_config.auto_calc = TRUE;
+ arb_segment_config.segment = FCAN_ARB_SEGMENT;
+
+ data_segment_config.baudrate = DATA_BAUD_RATE;
+ data_segment_config.auto_calc = TRUE;
+ data_segment_config.segment = FCAN_DATA_SEGMENT;
+
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_BAUDRATE_SET, &arb_segment_config);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl arb_segment_config failed.");
+ return ret;
+ }
+
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_BAUDRATE_SET, &data_segment_config);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl data_segment_config failed.");
+ return ret;
+ }
+ return ret;
+}
+
+
+static FError FFreeRTOSCanIdMaskSet(FFreeRTOSCan *os_can_p, void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+
+ if ( ((int)(uintptr)pvParameters) == 1 )
+ {
+ FCanIdMaskConfig id_mask;
+ memset(&id_mask, 0, sizeof(id_mask));
+ for (int i = 0; i < FCAN_ACC_ID_REG_NUM; i++)
+ {
+ id_mask.filter_index = i;
+ id_mask.id = 0x0F;//只接收id的消息
+ id_mask.mask = 0x00;//掩码 FCAN_ACC_IDN_MASK 对应位为 1:则忽略 0:则比较
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_ID_MASK_SET, &id_mask);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ID_MASK_SET %d failed.", i);
+ return ret;
+ }
+ }
+ }
+ else if ( ((int)(uintptr)pvParameters) == 2 )
+ {
+ FCanIdMaskConfig id_mask;
+ memset(&id_mask, 0, sizeof(id_mask));
+ for (int i = 0; i < FCAN_ACC_ID_REG_NUM; i++)
+ {
+ id_mask.filter_index = i;
+ id_mask.id = 0x0C;//(canid&maskid)与canid比较
+ id_mask.mask = 0x03;//0011 比较高两位,忽略低两位
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_ID_MASK_SET, &id_mask);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ID_MASK_SET %d failed.", i);
+ return ret;
+ }
+ }
+ }
+
+ return ret;
+}
+
+static void FFreeRTOSCanInitTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ BaseType_t xReturn = pdPASS;
+ u32 instance_id = FCAN0_ID;
+ u32 tran_mode = FCAN_PROBE_NORMAL_MODE;
+
+ /* The queue is created to hold a maximum of 32 structures of type xData. */
+ xQueue = xQueueCreate(32, sizeof(FCanQueueData));
+ if (xQueue == NULL)
+ {
+ printf("FFreeRTOSCanCreateFilterTestTask FCanQueueData create failed.\r\n");
+ }
+
+ /*init iomux*/
+ FIOMuxInit();
+
+ for (instance_id = FCAN0_ID; instance_id < FCAN_NUM; instance_id++)
+ {
+ FIOPadSetCanMux(instance_id);
+
+ /* init can controller */
+ os_can_ctrl_p[instance_id] = FFreeRTOSCanInit(instance_id);
+ if (os_can_ctrl_p[instance_id] == NULL)
+ {
+ printf("FFreeRTOSCanInit %d failed!!!\r\n", instance_id);
+ goto can_init_exit;
+ }
+
+ /* set can baudrate */
+ ret = FFreeRTOSCanBaudrateSet(os_can_ctrl_p[instance_id]);
+ if (FCAN_SUCCESS != ret)
+ {
+ printf("FFreeRTOSCanInit FFreeRTOSCanBaudrateSet failed!!!\r\n");
+ goto can_init_exit;
+ }
+
+ /* set can id mask */
+ ret = FFreeRTOSCanIdMaskSet(os_can_ctrl_p[instance_id], pvParameters);
+ if (FCAN_SUCCESS != ret)
+ {
+ printf("FFreeRTOSCanInit FFreeRTOSCanIdMaskSet failed!!!\r\n");
+ goto can_init_exit;
+ }
+
+ /* Identifier mask enable */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_ID_MASK_ENABLE, NULL);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ID_MASK_ENABLE failed.");
+ goto can_init_exit;
+ }
+
+ /* init can interrupt handler */
+ ret = FFreeRTOSCanIntrSet(os_can_ctrl_p[instance_id]);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanInit FFreeRTOSCanIntrSet failed!!!");
+ goto can_init_exit;
+ }
+
+ /* set can transfer mode */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_MODE_SET, &tran_mode);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_MODE_SET failed.");
+ goto can_init_exit;
+ }
+
+ /* enable can transfer */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_ENABLE, NULL);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ENABLE failed.");
+ goto can_init_exit;
+ }
+
+ }
+
+ printf("\r\nFFreeRTOSCanInitTask execute success !!!\r\n");
+
+ if ( ((int)(uintptr)pvParameters) == 1 )
+ {
+ printf("\r\nTest Example 1: Only frames with id 0x0F are received !!!\r\n");//测试例子1
+ }
+ else if ( ((int)(uintptr)pvParameters) == 2 )
+ {
+ printf("\r\nTest Example 2: Compare the higher two bit and ignore the lower two bit !!!\r\n");//测试例子2
+ }
+
+
+ /* can send task */
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanSendTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanSendTask",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ NULL,/* 任务入口函数参数 */
+ (UBaseType_t)configMAX_PRIORITIES - 5, /* 任务的优先级 */
+ (TaskHandle_t *)&send_handle); /* 任务控制 */
+ if (xReturn != pdPASS)
+ {
+ printf("Create FFreeRTOSCanSendTask failed.\r\n");
+ goto can_init_exit;
+ }
+
+ /* can recv task */
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanRecvTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanRecvTask",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ NULL,/* 任务入口函数参数 */
+ (UBaseType_t)configMAX_PRIORITIES - 5, /* 任务的优先级 */
+ (TaskHandle_t *)&recv_handle); /* 任务控制 */
+ if (xReturn != pdPASS)
+ {
+ printf("Create FFreeRTOSCanRecvTask failed.\r\n");
+ goto can_init_exit;
+ }
+
+can_init_exit:
+ vTaskDelete(NULL);
+}
+
+static void FFreeRTOSCanSendTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ u32 instance_id = FCAN0_ID;
+ u32 count[FCAN_NUM] = {0};
+ int i = 0;
+ /* As per most tasks, this task is implemented in an infinite loop. */
+ for (;;)
+ {
+ printf("\r\ncan send task running.\r\n");
+ for (instance_id = FCAN0_ID; instance_id <= FCAN1_ID; instance_id++)
+ {
+ /* can id递增发送 */
+ for (u32 id = 0x00; id <= 0x0F; id++)
+ {
+ send_frame[instance_id].canid = id;
+ send_frame[instance_id].canid &= CAN_SFF_MASK;
+ send_frame[instance_id].candlc = FCAN_SEND_LENGTH;
+ for (i = 0; i < send_frame[instance_id].candlc; i++)
+ {
+ send_frame[instance_id].data[i] = i + (instance_id << 4);
+ }
+ ret = FFreeRTOSCanSend(os_can_ctrl_p[instance_id], &send_frame[instance_id]);
+ if (ret != FCAN_SUCCESS)
+ {
+ printf("can%d send failed.\n", instance_id);
+ }
+ count[instance_id]++;
+ printf("\r\ncan%d send frame id is: 0x%02x\r\n", instance_id, send_frame[instance_id].canid);
+ vTaskDelay(CAN_SEND_PERIOD);
+ }
+ }
+ vTaskDelete(NULL);
+ }
+}
+
+static void FFreeRTOSCanRecvTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ u32 count[FCAN_NUM] = {0};
+ int i = 0;
+ static FCanQueueData xReceiveStructure;
+ FFreeRTOSCan *os_can_p;
+ u32 instance_id = FCAN0_ID;
+ /* As per most tasks, this task is implemented in an infinite loop. */
+ for (;;)
+ {
+ /* wait recv interrupt give semphore */
+ xQueueReceive(xQueue, &xReceiveStructure, portMAX_DELAY);
+ os_can_p = xReceiveStructure.os_can_p;
+ instance_id = os_can_p->can_ctrl.config.instance_id;
+ ret = FFreeRTOSCanRecv(os_can_p, &recv_frame[instance_id]);
+ if (FCAN_SUCCESS == ret)
+ {
+ printf("can%d recv id is 0x%02x.\r\n", instance_id, recv_frame[instance_id].canid);
+ for (i = 0; i < recv_frame[instance_id].candlc; i++)
+ {
+ if (recv_frame[instance_id].data[i] != send_frame[FCAN1_ID - instance_id].data[i])
+ {
+ FCAN_TEST_ERROR("\ncount=%d: can %d recv is not equal to can%d send!!!\r\n", count[instance_id], instance_id, FCAN1_ID - instance_id);
+ }
+ }
+ count[instance_id]++;
+
+ //被过滤的帧,进不到此函数
+ if ( recv_frame[instance_id].canid != send_frame[FCAN1_ID - instance_id].canid)
+ {
+ printf("The frame id:0x%02x was filtered successfully.\r\n", send_frame[FCAN1_ID - instance_id].canid);
+ }
+ else
+ {
+ printf("The frame id:0x%02x was receved successfully.\r\n", recv_frame[instance_id].canid);
+ }
+ }
+ if ((instance_id == 0) && (recv_frame[instance_id].canid == 0x0F))
+ {
+ FFreeRTOSCanDelete();
+ }
+ }
+}
+
+/* function1,2 of can id filter example */
+BaseType_t FFreeRTOSCanCreateFilterTestTask(void)
+{
+ BaseType_t xReturn = pdPASS;
+ BaseType_t timer_started = pdPASS;
+
+ test_semaphore = xSemaphoreCreateBinary();
+ if (test_semaphore != NULL)
+ {
+ xSemaphoreGive(test_semaphore);
+ }
+
+ /* can filter test1 task */
+ xSemaphoreTake(test_semaphore, portMAX_DELAY);
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanInitTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanInitTask",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ (void *)1,/* 任务入口函数参数 */
+ (UBaseType_t)1, /* 任务的优先级 */
+ NULL); /* 任务控制 */
+
+ /* can filter test2 task */
+ xSemaphoreTake(test_semaphore, portMAX_DELAY);
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanInitTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanInit2Task",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ (void *)2,/* 任务入口函数参数 */
+ (UBaseType_t)1, /* 任务的优先级 */
+ NULL); /* 任务控制 */
+
+ return xReturn;
+}
+
+static void FFreeRTOSCanDelete(void)
+{
+ /* deinit can os instance */
+ FFreeRTOSCanDeinit(os_can_ctrl_p[FCAN1_ID]);
+ FFreeRTOSCanDeinit(os_can_ctrl_p[FCAN0_ID]);
+
+ /*iopad deinit */
+ FIOMuxDeInit();
+
+ /* delete queue */
+ vQueueDelete(xQueue);
+
+ xSemaphoreGive(test_semaphore);
+
+ if (recv_handle)
+ {
+ vPrintf("\r\nDelete FFreeRTOSCanRecvTask success.\r\n");
+ vPrintf("\r\nDelete FFreeRTOSCanSendTask success.\r\n");
+ vTaskDelete(recv_handle);
+ }
+}
diff --git a/example/peripheral/can/src/can_example.c b/example/peripheral/can/can/src/can_intr_loopback_mode_example.c
similarity index 61%
rename from example/peripheral/can/src/can_example.c
rename to example/peripheral/can/can/src/can_intr_loopback_mode_example.c
index cbaa381ff23027eb7d126c71ad2b873f189bc190..20f649d3557655537033eb390ac2725ac0aafee4 100644
--- a/example/peripheral/can/src/can_example.c
+++ b/example/peripheral/can/can/src/can_intr_loopback_mode_example.c
@@ -11,15 +11,16 @@
* See the Phytium Public License for more details.
*
*
- * FilePath: can_example.c
+ * FilePath: can_intr_loopback_mode_example.c
* Date: 2022-07-11 11:32:48
- * LastEditTime: 2022-07-11 11:32:48
+ * LastEditTime: 2023-10-20 11:32:48
* Description: This file is for CAN task implementations
*
* Modify History:
* Ver Who Date Changes
* ----- ------ -------- --------------------------------------
* 1.0 wangxiaodong 2022/09/23 first commit
+ * 2.0 huangjin 2023/10/7 delete software timer
*/
#include
#include
@@ -34,20 +35,24 @@
#include "fassert.h"
#include "fdebug.h"
-#define FCAN_TEST_DEBUG_TAG "FCAN_FREERTOS_TEST"
+#define FCAN_TEST_DEBUG_TAG "FCAN_FREERTOS_INTR_TEST"
#define FCAN_TEST_DEBUG(format, ...) FT_DEBUG_PRINT_D(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
#define FCAN_TEST_INFO(format, ...) FT_DEBUG_PRINT_I(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
#define FCAN_TEST_WARN(format, ...) FT_DEBUG_PRINT_W(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
#define FCAN_TEST_ERROR(format, ...) FT_DEBUG_PRINT_E(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
-/* The periods assigned to the one-shot timers. */
-#define ONE_SHOT_TIMER_PERIOD ( pdMS_TO_TICKS( 20000UL ))
+/* can frame config */
+#define FCAN_SEND_STID 0x000007FDU
+#define FCAN_SEND_EXID 0x1FFFFFFDU
+#define FCAN_SEND_LENGTH 8
+#define FCAN_SEND_STID_MAX 0x000007FFU
+#define FCAN_SEND_EXID_MAX 0x1FFFFFFFU
/* can send period */
-#define CAN_SEND_PERIOD ( pdMS_TO_TICKS( 1000UL ))
+#define CAN_SEND_PERIOD ( pdMS_TO_TICKS( 100UL ))
/* can baudrate */
-#define ARB_BAUD_RATE 1000000
+#define ARB_BAUD_RATE 1000000
#define DATA_BAUD_RATE 1000000
typedef struct
@@ -56,15 +61,14 @@ typedef struct
FFreeRTOSCan *os_can_p;
} FCanQueueData;
-/* Declare a variable of type QueueHandle_t. This is used to store the queue
-that is accessed by all three tasks. */
+/* Declare a variable of type QueueHandle_t. This is used to store the queue that is accessed by all three tasks. */
static QueueHandle_t xQueue;
+static xSemaphoreHandle test_semaphore;
+
static xTaskHandle send_handle;
static xTaskHandle recv_handle;
-static TimerHandle_t xOneShotTimer;
-
static FFreeRTOSCan *os_can_ctrl_p[FCAN_NUM];
static FCanFrame send_frame[FCAN_NUM];
@@ -96,6 +100,21 @@ static void FCanRxIrqCallback(void *args)
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
+static void FCanTxFifoEmptyIrqCallback(void *args)
+{
+ FFreeRTOSCan *os_can_p = (FFreeRTOSCan *)args;
+ FCAN_TEST_DEBUG("Can%d tx fifo is empty.", os_can_p->can_ctrl.config.instance_id);
+}
+
+static void FCanRxFifoFullIrqCallback(void *args)
+{
+ FFreeRTOSCan *os_can_p = (FFreeRTOSCan *)args;
+ FCAN_TEST_DEBUG("Can%d rx fifo is full.", os_can_p->can_ctrl.config.instance_id);
+ u32 reg_val = 0;
+ reg_val = FCAN_READ_REG32(os_can_p->can_ctrl.config.base_address, FCAN_FIFO_CNT_OFFSET);
+ printf("\r\nRecv fifo cnt=%d!!!\r\n", FCAN_FIFO_CNT_RFN_GET(reg_val));
+}
+
static FError FFreeRTOSCanIntrSet(FFreeRTOSCan *os_can_p)
{
FError ret = FCAN_SUCCESS;
@@ -123,6 +142,26 @@ static FError FFreeRTOSCanIntrSet(FFreeRTOSCan *os_can_p)
return ret;
}
+ intr_event.type = FCAN_INTR_EVENT_FIFOEMPTY;
+ intr_event.handler = FCanTxFifoEmptyIrqCallback;
+ intr_event.param = (void *)os_can_p;
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_INTR_SET, &intr_event);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FCAN_INTR_EVENT_FIFOEMPTY failed.");
+ return ret;
+ }
+
+ intr_event.type = FCAN_INTR_EVENT_FIFOFULL;
+ intr_event.handler = FCanRxFifoFullIrqCallback;
+ intr_event.param = (void *)os_can_p;
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_INTR_SET, &intr_event);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FCAN_INTR_EVENT_FIFOFULL failed.");
+ return ret;
+ }
+
u32 cpu_id;
GetCpuId(&cpu_id);
FCanCtrl *instance_p = &os_can_p->can_ctrl;
@@ -139,9 +178,6 @@ static FError FFreeRTOSCanBaudrateSet(FFreeRTOSCan *os_can_p)
{
FError ret = FCAN_SUCCESS;
- FCanIntrEventConfig intr_event;
- memset(&intr_event, 0, sizeof(intr_event));
-
FCanBaudrateConfig arb_segment_config;
FCanBaudrateConfig data_segment_config;
memset(&arb_segment_config, 0, sizeof(arb_segment_config));
@@ -171,10 +207,9 @@ static FError FFreeRTOSCanBaudrateSet(FFreeRTOSCan *os_can_p)
}
-static FError FFreeRTOSCanIdMaskSet(FFreeRTOSCan *os_can_p)
+static FError FFreeRTOSCanIdMaskSet(FFreeRTOSCan *os_can_p, int frame_type)
{
FError ret = FCAN_SUCCESS;
-
FCanIdMaskConfig id_mask;
memset(&id_mask, 0, sizeof(id_mask));
for (int i = 0; i < FCAN_ACC_ID_REG_NUM; i++)
@@ -182,6 +217,11 @@ static FError FFreeRTOSCanIdMaskSet(FFreeRTOSCan *os_can_p)
id_mask.filter_index = i;
id_mask.id = 0;
id_mask.mask = FCAN_ACC_IDN_MASK;
+ if ( frame_type == 1 )
+ {
+ id_mask.type = EXTEND_FRAME;
+ }
+
ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_ID_MASK_SET, &id_mask);
if (FCAN_SUCCESS != ret)
{
@@ -197,23 +237,33 @@ static void FFreeRTOSCanInitTask(void *pvParameters)
{
FError ret = FCAN_SUCCESS;
BaseType_t xReturn = pdPASS;
- u32 can_id = FCAN0_ID;
+ u32 instance_id = FCAN0_ID;
u32 tran_mode = FCAN_PROBE_NORMAL_MODE;
- for (can_id = FCAN0_ID; can_id < FCAN_NUM; can_id++)
+ /* The queue is created to hold a maximum of 32 structures of type xData. */
+ xQueue = xQueueCreate(32, sizeof(FCanQueueData));
+ if (xQueue == NULL)
+ {
+ printf("FFreeRTOSCanCreateFilterTestTask FCanQueueData create failed.\r\n");
+ }
+
+ /*init iomux*/
+ FIOMuxInit();
+
+ for (instance_id = FCAN0_ID; instance_id < FCAN_NUM; instance_id++)
{
- FIOPadSetCanMux(can_id);
-
+ FIOPadSetCanMux(instance_id);
+
/* init can controller */
- os_can_ctrl_p[can_id] = FFreeRTOSCanInit(can_id);
- if (os_can_ctrl_p[can_id] == NULL)
+ os_can_ctrl_p[instance_id] = FFreeRTOSCanInit(instance_id);
+ if (os_can_ctrl_p[instance_id] == NULL)
{
- printf("FFreeRTOSCanInit %d failed!!!\r\n", can_id);
+ printf("FFreeRTOSCanInit %d failed!!!\r\n", instance_id);
goto can_init_exit;
}
/* set can baudrate */
- ret = FFreeRTOSCanBaudrateSet(os_can_ctrl_p[can_id]);
+ ret = FFreeRTOSCanBaudrateSet(os_can_ctrl_p[instance_id]);
if (FCAN_SUCCESS != ret)
{
printf("FFreeRTOSCanInit FFreeRTOSCanBaudrateSet failed!!!\r\n");
@@ -221,7 +271,7 @@ static void FFreeRTOSCanInitTask(void *pvParameters)
}
/* set can id mask */
- ret = FFreeRTOSCanIdMaskSet(os_can_ctrl_p[can_id]);
+ ret = FFreeRTOSCanIdMaskSet(os_can_ctrl_p[instance_id], ((int)(uintptr)pvParameters));
if (FCAN_SUCCESS != ret)
{
printf("FFreeRTOSCanInit FFreeRTOSCanIdMaskSet failed!!!\r\n");
@@ -229,7 +279,7 @@ static void FFreeRTOSCanInitTask(void *pvParameters)
}
/* Identifier mask enable */
- ret = FFreeRTOSCanControl(os_can_ctrl_p[can_id], FREERTOS_CAN_CTRL_ID_MASK_ENABLE, NULL);
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_ID_MASK_ENABLE, NULL);
if (FCAN_SUCCESS != ret)
{
FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ID_MASK_ENABLE failed.");
@@ -237,7 +287,7 @@ static void FFreeRTOSCanInitTask(void *pvParameters)
}
/* init can interrupt handler */
- ret = FFreeRTOSCanIntrSet(os_can_ctrl_p[can_id]);
+ ret = FFreeRTOSCanIntrSet(os_can_ctrl_p[instance_id]);
if (FCAN_SUCCESS != ret)
{
FCAN_TEST_ERROR("FFreeRTOSCanInit FFreeRTOSCanIntrSet failed!!!");
@@ -245,7 +295,7 @@ static void FFreeRTOSCanInitTask(void *pvParameters)
}
/* set can transfer mode */
- ret = FFreeRTOSCanControl(os_can_ctrl_p[can_id], FREERTOS_CAN_CTRL_MODE_SET, &tran_mode);
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_MODE_SET, &tran_mode);
if (FCAN_SUCCESS != ret)
{
FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_MODE_SET failed.");
@@ -253,7 +303,7 @@ static void FFreeRTOSCanInitTask(void *pvParameters)
}
/* enable can transfer */
- ret = FFreeRTOSCanControl(os_can_ctrl_p[can_id], FREERTOS_CAN_CTRL_ENABLE, NULL);
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_ENABLE, NULL);
if (FCAN_SUCCESS != ret)
{
FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ENABLE failed.");
@@ -264,11 +314,20 @@ static void FFreeRTOSCanInitTask(void *pvParameters)
printf("FFreeRTOSCanInitTask execute success !!!\r\n");
+ if ( ((int)(uintptr)pvParameters) == 0 )
+ {
+ printf("Standard frame test example!!!\r\n");
+ }
+ else if ( ((int)(uintptr)pvParameters) == 1 )
+ {
+ printf("Extended frame test example!!!\r\n");
+ }
+
/* can send task */
xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanSendTask, /* 任务入口函数 */
(const char *)"FFreeRTOSCanSendTask",/* 任务名字 */
(uint16_t)1024, /* 任务栈大小 */
- NULL,/* 任务入口函数参数 */
+ pvParameters,/* 任务入口函数参数 */
(UBaseType_t)configMAX_PRIORITIES - 5, /* 任务的优先级 */
(TaskHandle_t *)&send_handle); /* 任务控制 */
if (xReturn != pdPASS)
@@ -294,14 +353,60 @@ can_init_exit:
vTaskDelete(NULL);
}
+static void FFreeRTOSCanSendTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ u32 instance_id = FCAN0_ID;
+ u32 count[FCAN_NUM] = {0};
+ u32 send_max_id;
+ int i = 0;
+ /* As per most tasks, this task is implemented in an infinite loop. */
+ for (;;)
+ {
+ printf("\r\ncan send task running.\r\n");
+ for (instance_id = FCAN0_ID; instance_id <= FCAN1_ID; instance_id++)
+ {
+ send_frame[instance_id].candlc = FCAN_SEND_LENGTH; //DLC
+ if (((int)(uintptr)pvParameters) == 1)
+ {
+ send_frame[instance_id].canid = FCAN_SEND_EXID + count[instance_id]; //EXID //IDE
+ send_frame[instance_id].canid |= CAN_EFF_FLAG;
+ send_max_id = CAN_EFF_MASK | CAN_EFF_FLAG;
+ }
+ else
+ {
+ send_frame[instance_id].canid = FCAN_SEND_STID + count[instance_id]; //STID
+ send_frame[instance_id].canid &= CAN_SFF_MASK;
+ send_max_id = CAN_SFF_MASK;
+ }
+
+ for (i = 0; i < send_frame[instance_id].candlc; i++)
+ {
+ send_frame[instance_id].data[i] = i + (instance_id << 4);
+ }
+ ret = FFreeRTOSCanSend(os_can_ctrl_p[instance_id], &send_frame[instance_id]);
+ if (ret != FCAN_SUCCESS)
+ {
+ printf("can%d send failed.\n", instance_id);
+ }
+ count[instance_id]++;
+ vTaskDelay(CAN_SEND_PERIOD);
+ }
+ if ( (send_frame[instance_id - 1].canid == send_max_id) )
+ {
+ vTaskDelete(NULL);
+ }
+ }
+}
+
static void FFreeRTOSCanRecvTask(void *pvParameters)
{
FError ret = FCAN_SUCCESS;
- u8 count[FCAN_NUM] = {0};
+ u32 count[FCAN_NUM] = {0};
int i = 0;
static FCanQueueData xReceiveStructure;
FFreeRTOSCan *os_can_p;
- u32 instance_id = 0;
+ u32 instance_id = FCAN0_ID;
/* As per most tasks, this task is implemented in an infinite loop. */
for (;;)
{
@@ -309,160 +414,83 @@ static void FFreeRTOSCanRecvTask(void *pvParameters)
xQueueReceive(xQueue, &xReceiveStructure, portMAX_DELAY);
os_can_p = xReceiveStructure.os_can_p;
instance_id = os_can_p->can_ctrl.config.instance_id;
- memset(&recv_frame, 0, sizeof(FCanFrame));
ret = FFreeRTOSCanRecv(os_can_p, &recv_frame[instance_id]);
if (FCAN_SUCCESS == ret)
{
- printf("\r\ncan 0 recv id is %#x.\r\n", recv_frame[instance_id].canid);
- printf("can 0 recv dlc is %d.\r\n", recv_frame[instance_id].candlc);
- printf("can 0 recv data is ");
+ printf("\r\ncan%d recv id is 0x%02x.\r\n", instance_id, recv_frame[instance_id].canid);
+ printf("can%d recv dlc is %d.\r\n", instance_id, recv_frame[instance_id].candlc);
+ printf("can%d recv data is ", instance_id);
for (i = 0; i < recv_frame[instance_id].candlc; i++)
{
- printf("%#x ", recv_frame[instance_id].data[i]);
+ printf("0x%02x ", recv_frame[instance_id].data[i]);
if (recv_frame[instance_id].data[i] != send_frame[FCAN1_ID - instance_id].data[i])
{
- FCAN_TEST_ERROR("\ncount=%d: can %d recv is equal to can%d send!!!\r\n", count[instance_id], instance_id, FCAN1_ID - instance_id);
+ FCAN_TEST_ERROR("\ncount%d = %d: can%d recv is not equal to can%d send!!!\r\n", instance_id, count[instance_id], instance_id, FCAN1_ID - instance_id);
}
}
- printf("\ncount=%d: can %d recv is equal to can%d send!!!\r\n", count[instance_id], instance_id, FCAN1_ID - instance_id);
-
+ printf("\ncount%d = %d: can%d recv is equal to can%d send!!!\r\n", instance_id, count[instance_id], instance_id, FCAN1_ID - instance_id);
count[instance_id]++;
}
-
- }
-}
-
-static void FFreeRTOSCanSendTask(void *pvParameters)
-{
-#define FCAN_SEND_ID 0x23
-#define FCAN_SEND_LENGTH 8
-
- FError ret = FCAN_SUCCESS;
- u32 can_id = FCAN0_ID;
-
- u8 count[FCAN_NUM] = {0};
- int i = 0;
-
- /* As per most tasks, this task is implemented in an infinite loop. */
- for (;;)
- {
- printf("\r\ncan send task running.\r\n");
- for (can_id = FCAN0_ID; can_id <= FCAN1_ID; can_id++)
+ if ((instance_id == 0)
+ && ((recv_frame[instance_id].canid == (FCAN_SEND_EXID_MAX | CAN_EFF_FLAG))
+ || (recv_frame[instance_id].canid == FCAN_SEND_STID_MAX)))
{
- send_frame[can_id].canid = FCAN_SEND_ID + (can_id << 8);
- send_frame[can_id].canid &= CAN_SFF_MASK;
- send_frame[can_id].candlc = FCAN_SEND_LENGTH;
- for (i = 0; i < send_frame[can_id].candlc; i++)
- {
- send_frame[can_id].data[i] = i + (can_id << 4);
- }
- ret = FFreeRTOSCanSend(os_can_ctrl_p[can_id], &send_frame[can_id]);
- if (ret != FCAN_SUCCESS)
- {
- printf("can%d send failed.\n", can_id);
- }
- count[can_id]++;
+ FFreeRTOSCanDelete();
}
- vTaskDelay(CAN_SEND_PERIOD);
}
}
-static void prvOneShotTimerCallback(TimerHandle_t xTimer)
-{
- /* Output a string to show the time at which the callback was executed. */
- printf("One-shot timer callback executing, will delete FFreeRTOSCanReadTask.\r\n");
-
- FFreeRTOSCanDelete();
-}
-
-/* create can test, can0 and can1 loopback */
-BaseType_t FFreeRTOSCanCreate(void)
+/* create can intr test, can0 and can1 loopback */
+BaseType_t FFreeRTOSCreateCanIntrTestTask(void)
{
BaseType_t xReturn = pdPASS;
BaseType_t timer_started = pdPASS;
- /* The queue is created to hold a maximum of 32 structures of type xData. */
- xQueue = xQueueCreate(32, sizeof(FCanQueueData));
- if (xQueue == NULL)
+ test_semaphore = xSemaphoreCreateBinary();
+ if (test_semaphore != NULL)
{
- printf("FFreeRTOSCanCreate FCanQueueData create failed.\r\n");
- return pdFAIL;
+ xSemaphoreGive(test_semaphore);
}
- /* can init task */
+ /* can intr example standard frame task */
+ xSemaphoreTake(test_semaphore, portMAX_DELAY);
xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanInitTask, /* 任务入口函数 */
(const char *)"FFreeRTOSCanInitTask",/* 任务名字 */
(uint16_t)1024, /* 任务栈大小 */
- NULL,/* 任务入口函数参数 */
+ (void *)0,/* 任务入口函数参数 */
(UBaseType_t)1, /* 任务的优先级 */
NULL); /* 任务控制 */
- /* Create the one shot software timer, storing the handle to the created
- software timer in xOneShotTimer. */
- xOneShotTimer = xTimerCreate("OneShot Software Timer", /* Text name for the software timer - not used by FreeRTOS. */
- ONE_SHOT_TIMER_PERIOD, /* The software timer's period in ticks. */
- pdFALSE, /* Setting uxAutoRealod to pdFALSE creates a one-shot software timer. */
- 0, /* This example use the timer id. */
- prvOneShotTimerCallback); /* The callback function to be used by the software timer being created. */
-
- /* Check the timers were created. */
- if (xOneShotTimer != NULL)
- {
- /* Start the software timers, using a block time of 0 (no block time).
- The scheduler has not been started yet so any block time specified here
- would be ignored anyway. */
- timer_started = xTimerStart(xOneShotTimer, 0);
-
- /* The implementation of xTimerStart() uses the timer command queue, and
- xTimerStart() will fail if the timer command queue gets full. The timer
- service task does not get created until the scheduler is started, so all
- commands sent to the command queue will stay in the queue until after
- the scheduler has been started. Check both calls to xTimerStart()
- passed. */
- if (timer_started != pdPASS)
- {
- vPrintf("CreateSoftwareTimerTasks xTimerStart failed. \r\n");
- }
- }
- else
- {
- vPrintf("CreateSoftwareTimerTasks xTimerCreate failed. \r\n");
- }
+ /* can intr example extended frame task */
+ xSemaphoreTake(test_semaphore, portMAX_DELAY);
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanInitTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanInitTask2",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ (void *)1,/* 任务入口函数参数 */
+ (UBaseType_t)1, /* 任务的优先级 */
+ NULL); /* 任务控制 */
return xReturn;
}
static void FFreeRTOSCanDelete(void)
{
- BaseType_t xReturn = pdPASS;
-
- if (send_handle)
- {
- vTaskDelete(send_handle);
- vPrintf("Delete FFreeRTOSCanSendTask success.\r\n");
- }
-
- if (recv_handle)
- {
- vTaskDelete(recv_handle);
- vPrintf("Delete FFreeRTOSCanRecvTask success.\r\n");
- }
-
/* deinit can os instance */
- FFreeRTOSCanDeinit(os_can_ctrl_p[FCAN0_ID]);
FFreeRTOSCanDeinit(os_can_ctrl_p[FCAN1_ID]);
+ FFreeRTOSCanDeinit(os_can_ctrl_p[FCAN0_ID]);
+
+ /*iopad deinit */
+ FIOMuxDeInit();
/* delete queue */
vQueueDelete(xQueue);
- /* delete timer */
- xReturn = xTimerDelete(xOneShotTimer, 0);
- if (xReturn != pdPASS)
- {
- vPrintf("Delete OneShot Software Timer failed.\r\n");
- }
- else
+ xSemaphoreGive(test_semaphore);
+
+ if (recv_handle)
{
- vPrintf("Delete OneShot Software Timer success.\r\n");
+ vPrintf("\r\nDelete FFreeRTOSCanRecvTask success.\r\n");
+ vPrintf("\r\nDelete FFreeRTOSCanSendTask success.\r\n");
+ vTaskDelete(recv_handle);
}
}
\ No newline at end of file
diff --git a/example/peripheral/can/can/src/can_polled_loopback_mode_example.c b/example/peripheral/can/can/src/can_polled_loopback_mode_example.c
new file mode 100644
index 0000000000000000000000000000000000000000..9ae3d7adbf3cd34de72784736b0e89af87109846
--- /dev/null
+++ b/example/peripheral/can/can/src/can_polled_loopback_mode_example.c
@@ -0,0 +1,384 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: can_polled_loopback_mode_example.c
+ * Date: 2023-10-11 11:13:48
+ * LastEditTime: 2023-10-20 11:13:48
+ * Description: This file is for CAN task implementations
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2023/10/7 first commit
+ */
+#include
+#include
+#include "FreeRTOSConfig.h"
+#include "FreeRTOS.h"
+#include "task.h"
+#include "timers.h"
+#include "fcan.h"
+#include "fcan_os.h"
+#include "fcpu_info.h"
+#include "fio_mux.h"
+#include "fassert.h"
+#include "fdebug.h"
+
+#define FCAN_TEST_DEBUG_TAG "FCAN_FREERTOS_POLLED_TEST"
+#define FCAN_TEST_DEBUG(format, ...) FT_DEBUG_PRINT_D(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FCAN_TEST_INFO(format, ...) FT_DEBUG_PRINT_I(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FCAN_TEST_WARN(format, ...) FT_DEBUG_PRINT_W(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FCAN_TEST_ERROR(format, ...) FT_DEBUG_PRINT_E(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+
+/* can frame config */
+#define FCAN_SEND_STID 0x000007FDU
+#define FCAN_SEND_EXID 0x1FFFFFFDU
+#define FCAN_SEND_LENGTH 8
+#define FCAN_SEND_STID_MAX 0x000007FFU
+#define FCAN_SEND_EXID_MAX 0x1FFFFFFFU
+
+/* can send period */
+#define CAN_SEND_PERIOD ( pdMS_TO_TICKS( 100UL ))
+
+/* can baudrate */
+#define ARB_BAUD_RATE 1000000
+#define DATA_BAUD_RATE 1000000
+
+/* Declare a variable of type QueueHandle_t. This is used to store the queue that is accessed by all three tasks. */
+static QueueHandle_t xQueue;
+
+static xSemaphoreHandle test_semaphore;
+
+static xTaskHandle send_handle;
+static xTaskHandle recv_handle;
+
+static FFreeRTOSCan *os_can_ctrl_p[FCAN_NUM];
+
+static FCanFrame send_frame[FCAN_NUM];
+static FCanFrame recv_frame[FCAN_NUM];
+
+static void FFreeRTOSCanSendTask(void *pvParameters);
+static void FFreeRTOSCanRecvTask(void *pvParameters);
+static void FFreeRTOSCanDelete(void);
+
+
+static FError FFreeRTOSCanBaudrateSet(FFreeRTOSCan *os_can_p)
+{
+ FError ret = FCAN_SUCCESS;
+
+ FCanBaudrateConfig arb_segment_config;
+ FCanBaudrateConfig data_segment_config;
+ memset(&arb_segment_config, 0, sizeof(arb_segment_config));
+ memset(&data_segment_config, 0, sizeof(data_segment_config));
+ arb_segment_config.baudrate = ARB_BAUD_RATE;
+ arb_segment_config.auto_calc = TRUE;
+ arb_segment_config.segment = FCAN_ARB_SEGMENT;
+
+ data_segment_config.baudrate = DATA_BAUD_RATE;
+ data_segment_config.auto_calc = TRUE;
+ data_segment_config.segment = FCAN_DATA_SEGMENT;
+
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_BAUDRATE_SET, &arb_segment_config);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl arb_segment_config failed.");
+ return ret;
+ }
+
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_BAUDRATE_SET, &data_segment_config);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl data_segment_config failed.");
+ return ret;
+ }
+ return ret;
+}
+
+
+static FError FFreeRTOSCanIdMaskSet(FFreeRTOSCan *os_can_p, int frame_type)
+{
+ FError ret = FCAN_SUCCESS;
+ FCanIdMaskConfig id_mask;
+ memset(&id_mask, 0, sizeof(id_mask));
+ for (int i = 0; i < FCAN_ACC_ID_REG_NUM; i++)
+ {
+ id_mask.filter_index = i;
+ id_mask.id = 0;
+ id_mask.mask = FCAN_ACC_IDN_MASK;
+ if ( frame_type == 1 )
+ {
+ id_mask.type = EXTEND_FRAME;
+ }
+
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_ID_MASK_SET, &id_mask);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ID_MASK_SET %d failed.", i);
+ return ret;
+ }
+ }
+
+ return ret;
+}
+
+static void FFreeRTOSCanInitTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ BaseType_t xReturn = pdPASS;
+ u32 instance_id = FCAN0_ID;
+ u32 tran_mode = FCAN_PROBE_NORMAL_MODE;
+
+ /* The queue is created to hold a maximum of 32 structures of type u32 instance_id . */
+ xQueue = xQueueCreate(32, sizeof(u32));
+ if (xQueue == NULL)
+ {
+ printf("FFreeRTOSCreateCanPolledTestTask FCanQueueData create failed.\r\n");
+ }
+
+ /*init iomux*/
+ FIOMuxInit();
+
+ for (instance_id = FCAN0_ID; instance_id < FCAN_NUM; instance_id++)
+ {
+ FIOPadSetCanMux(instance_id);
+
+ /* init can controller */
+ os_can_ctrl_p[instance_id] = FFreeRTOSCanInit(instance_id);
+ if (os_can_ctrl_p[instance_id] == NULL)
+ {
+ printf("FFreeRTOSCanInit %d failed!!!\r\n", instance_id);
+ goto can_init_exit;
+ }
+
+ /* set can baudrate */
+ ret = FFreeRTOSCanBaudrateSet(os_can_ctrl_p[instance_id]);
+ if (FCAN_SUCCESS != ret)
+ {
+ printf("FFreeRTOSCanInit FFreeRTOSCanBaudrateSet failed!!!\r\n");
+ goto can_init_exit;
+ }
+
+ /* set can id mask */
+ ret = FFreeRTOSCanIdMaskSet(os_can_ctrl_p[instance_id], ((int)(uintptr)pvParameters));
+ if (FCAN_SUCCESS != ret)
+ {
+ printf("FFreeRTOSCanInit FFreeRTOSCanIdMaskSet failed!!!\r\n");
+ goto can_init_exit;
+ }
+
+ /* Identifier mask enable */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_ID_MASK_ENABLE, NULL);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ID_MASK_ENABLE failed.");
+ goto can_init_exit;
+ }
+
+ /* set can transfer mode */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_MODE_SET, &tran_mode);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_MODE_SET failed.");
+ goto can_init_exit;
+ }
+
+ /* enable can transfer */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_ENABLE, NULL);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ENABLE failed.");
+ goto can_init_exit;
+ }
+
+ }
+
+ printf("FFreeRTOSCanInitTask execute success !!!\r\n");
+
+ if ( ((int)(uintptr)pvParameters) == 0 )
+ {
+ printf("Standard frame test example!!!\r\n");
+ }
+ else if ( ((int)(uintptr)pvParameters) == 1 )
+ {
+ printf("Extended frame test example!!!\r\n");
+ }
+
+ /* can send task */
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanSendTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanSendTask",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ pvParameters,/* 任务入口函数参数 */
+ (UBaseType_t)configMAX_PRIORITIES - 5, /* 任务的优先级 */
+ (TaskHandle_t *)&send_handle); /* 任务控制 */
+ if (xReturn != pdPASS)
+ {
+ printf("Create FFreeRTOSCanSendTask failed.\r\n");
+ goto can_init_exit;
+ }
+
+ /* can recv task */
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanRecvTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanRecvTask",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ NULL,/* 任务入口函数参数 */
+ (UBaseType_t)configMAX_PRIORITIES - 5, /* 任务的优先级 */
+ (TaskHandle_t *)&recv_handle); /* 任务控制 */
+ if (xReturn != pdPASS)
+ {
+ printf("Create FFreeRTOSCanRecvTask failed.\r\n");
+ goto can_init_exit;
+ }
+
+can_init_exit:
+ vTaskDelete(NULL);
+}
+
+static void FFreeRTOSCanSendTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ u32 instance_id = FCAN0_ID;
+ u32 count[FCAN_NUM] = {0};
+ u32 send_max_id;
+ int i = 0;
+ /* As per most tasks, this task is implemented in an infinite loop. */
+ for (;;)
+ {
+ printf("\r\ncan send task running.\r\n");
+ for (instance_id = FCAN0_ID; instance_id <= FCAN1_ID; instance_id++)
+ {
+ send_frame[instance_id].candlc = FCAN_SEND_LENGTH; //DLC
+ if (((int)(uintptr)pvParameters) == 1)
+ {
+ send_frame[instance_id].canid = FCAN_SEND_EXID + count[instance_id]; //EXID //IDE
+ send_frame[instance_id].canid |= CAN_EFF_FLAG;
+ send_max_id = CAN_EFF_MASK | CAN_EFF_FLAG;
+ }
+ else
+ {
+ send_frame[instance_id].canid = FCAN_SEND_STID + count[instance_id]; //STID
+ send_frame[instance_id].canid &= CAN_SFF_MASK;
+ send_max_id = CAN_SFF_MASK;
+ }
+
+ for (i = 0; i < send_frame[instance_id].candlc; i++)
+ {
+ send_frame[instance_id].data[i] = i + (instance_id << 4);
+ }
+ ret = FFreeRTOSCanSend(os_can_ctrl_p[instance_id], &send_frame[instance_id]);
+ if (ret != FCAN_SUCCESS)
+ {
+ printf("can%d send failed.\n", instance_id);
+ }
+ count[instance_id]++;
+ xQueueSendToBack(xQueue, &instance_id, portMAX_DELAY);
+ vTaskDelay(CAN_SEND_PERIOD);
+ }
+ if ( (send_frame[instance_id - 1].canid == send_max_id) )
+ {
+ vTaskDelete(NULL);
+ }
+ }
+}
+
+static void FFreeRTOSCanRecvTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ u32 count[FCAN_NUM] = {0};
+ int i = 0;
+ u32 instance_id = FCAN1_ID;
+ /* As per most tasks, this task is implemented in an infinite loop. */
+ for (;;)
+ {
+ /* wait can send give semphore */
+ xQueueReceive(xQueue, &instance_id, portMAX_DELAY);
+ instance_id = FCAN1_ID - instance_id;
+ ret = FFreeRTOSCanRecv(os_can_ctrl_p[instance_id], &recv_frame[instance_id]);
+ if (FCAN_SUCCESS == ret)
+ {
+ printf("\r\ncan%d recv id is 0x%02x.\r\n", instance_id, recv_frame[instance_id].canid);
+ printf("can%d recv dlc is %d.\r\n", instance_id, recv_frame[instance_id].candlc);
+ printf("can%d recv data is ", instance_id);
+ for (i = 0; i < recv_frame[instance_id].candlc; i++)
+ {
+ printf("0x%02x ", recv_frame[instance_id].data[i]);
+ if (recv_frame[instance_id].data[i] != send_frame[FCAN1_ID - instance_id].data[i])
+ {
+ FCAN_TEST_ERROR("\ncount%d = %d: can%d recv is not equal to can%d send!!!\r\n", instance_id, count[instance_id], instance_id, FCAN1_ID - instance_id);
+ }
+ }
+ printf("\ncount%d = %d: can%d recv is equal to can%d send!!!\r\n", instance_id, count[instance_id], instance_id, FCAN1_ID - instance_id);
+ count[instance_id]++;
+ }
+ if ((instance_id == 0)
+ && ((recv_frame[instance_id].canid == (FCAN_SEND_EXID_MAX | CAN_EFF_FLAG))
+ || (recv_frame[instance_id].canid == FCAN_SEND_STID_MAX)))
+ {
+ FFreeRTOSCanDelete();
+ }
+ }
+}
+
+/* create can polled test, can0 and can1 loopback */
+BaseType_t FFreeRTOSCreateCanPolledTestTask(void)
+{
+ BaseType_t xReturn = pdPASS;
+ BaseType_t timer_started = pdPASS;
+
+ test_semaphore = xSemaphoreCreateBinary();
+ if (test_semaphore != NULL)
+ {
+ xSemaphoreGive(test_semaphore);
+ }
+
+ /* can polled example standard frame task */
+ xSemaphoreTake(test_semaphore, portMAX_DELAY);
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanInitTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanInitTask",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ (void *)0,/* 任务入口函数参数 */
+ (UBaseType_t)1, /* 任务的优先级 */
+ NULL); /* 任务控制 */
+
+ /* can polled example extended frame task */
+ xSemaphoreTake(test_semaphore, portMAX_DELAY);
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanInitTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanInit2Task",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ (void *)1,/* 任务入口函数参数 */
+ (UBaseType_t)1, /* 任务的优先级 */
+ NULL); /* 任务控制 */
+
+ return xReturn;
+}
+
+static void FFreeRTOSCanDelete(void)
+{
+ /* deinit can os instance */
+ FFreeRTOSCanDeinit(os_can_ctrl_p[FCAN1_ID]);
+ FFreeRTOSCanDeinit(os_can_ctrl_p[FCAN0_ID]);
+
+ /*iopad deinit */
+ FIOMuxDeInit();
+
+ /* delete queue */
+ vQueueDelete(xQueue);
+
+ xSemaphoreGive(test_semaphore);
+
+ if (recv_handle)
+ {
+ vPrintf("\r\nDelete FFreeRTOSCanRecvTask success.\r\n");
+ vPrintf("\r\nDelete FFreeRTOSCanSendTask success.\r\n");
+ vTaskDelete(recv_handle);
+ }
+}
diff --git a/example/peripheral/can/can/src/cmd_can.c b/example/peripheral/can/can/src/cmd_can.c
new file mode 100644
index 0000000000000000000000000000000000000000..896686d8606764eac09aac9672b8ffd9fdc2fd80
--- /dev/null
+++ b/example/peripheral/can/can/src/cmd_can.c
@@ -0,0 +1,74 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: cmd_can.c
+ * Date: 2023-10-16 10:41:45
+ * LastEditTime: 2023-10-16 10:41:45
+ * Description: This file is for can example command interface
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2023/10/16 first commit
+ */
+#include "shell.h"
+#include "can_example.h"
+#include
+#include
+
+static void CreateTasksCmdUsage(void)
+{
+ printf("Usage:\r\n");
+ printf(" can intr \r\n");
+ printf(" -- Create can interrupt test example now. \r\n");
+ printf(" can polled \r\n");
+ printf(" -- Create can polled test example now. \r\n");
+#if defined(CONFIG_TARGET_E2000)
+ printf(" can filter \r\n");
+ printf(" -- Create can filter test example now. \r\n");
+#endif
+}
+
+int CreateTasksCmd(int argc, char *argv[])
+{
+ if (argc < 2)
+ {
+ CreateTasksCmdUsage();
+ return -1;
+ }
+ else if (!strcmp(argv[1], "intr"))
+ {
+ FFreeRTOSCreateCanIntrTestTask();
+ }
+ else if (!strcmp(argv[1], "polled"))
+ {
+ FFreeRTOSCreateCanPolledTestTask();
+ }
+#if defined(CONFIG_TARGET_E2000)
+ else if (!strcmp(argv[1], "filter"))
+ {
+ FFreeRTOSCanCreateFilterTestTask();
+ }
+#endif
+ else
+ {
+ printf("Error: Invalid arguments. \r\n");
+ CreateTasksCmdUsage();
+ }
+
+ return 0;
+}
+
+SHELL_EXPORT_CMD(SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), can, CreateTasksCmd, can creating test);
+
+
diff --git a/example/peripheral/can/canfd/Kconfig b/example/peripheral/can/canfd/Kconfig
new file mode 100644
index 0000000000000000000000000000000000000000..10607d02dfd337248346ab3ec2d90e0aed77f733
--- /dev/null
+++ b/example/peripheral/can/canfd/Kconfig
@@ -0,0 +1,8 @@
+#
+# For a description of the syntax of this configuration file,
+# see tools/kconfiglib/kconfig-language.txt.
+#
+
+
+source "$(SDK_DIR)/../freertos.kconfig"
+
diff --git a/example/peripheral/can/canfd/README.md b/example/peripheral/can/canfd/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..231bb776078df7ad8f7ba80f19bd562d88f4de74
--- /dev/null
+++ b/example/peripheral/can/canfd/README.md
@@ -0,0 +1,141 @@
+# canfd base on freertos
+
+## 1. 例程介绍
+
+本例程示范了freertos环境下的canfd的使用,包括canfd的初始化、canfd周期发送,接收操作;
+程序启动后,创建canfd初始化任务,设置canfd波特率,中断函数、id mask等;
+创建canfd定时发送任务FFreeRTOSCanSendTask,用于定时发送canfd报文;
+创建canfd接收任务FFreeRTOSCanRecvTask,用于接收canfd报文;
+使用B板进行测试,选择can0和can1回环;
+
+CANFD中断模式回环测试例程 (canfd_intr_loopback_mode_example.c)
+- 初始化CAN0,CAN1基本配置,仲裁域波特率和数据域波特率配置为 1M/S+2M/S,设置滤波器,初始化中断函数
+- 中断触发CAN0发送,CAN1接收,循环收发标准帧。并比对发送帧和接收帧是否相同
+- 中断触发CAN1发送,CAN0接收,循环收发标准帧。并比对发送帧和接收帧是否相同
+- 中断触发CAN0发送,CAN1接收,循环收发扩展帧。并比对发送帧和接收帧是否相同
+- 中断触发CAN1发送,CAN0接收,循环收发扩展帧。并比对发送帧和接收帧是否相同
+- 以上收发测试完成后,去初始化CAN0,CAN1,删除发送接收任务
+
+CANFD轮询模式回环测试例程 (canfd_polled_loopback_mode_example.c)
+- 初始化CAN0,CAN1基本配置,仲裁域波特率和数据域波特率配置为 1M/S+2M/S,设置滤波器
+- CAN0发送,CAN1接收,循环收发标准帧。并比对发送帧和接收帧是否相同
+- CAN1发送,CAN0接收,循环收发标准帧。并比对发送帧和接收帧是否相同
+- CAN0发送,CAN1接收,循环收发扩展帧。并比对发送帧和接收帧是否相同
+- CAN1发送,CAN0接收,循环收发扩展帧。并比对发送帧和接收帧是否相同
+- 以上收发测试完成后,去初始化CAN0,CAN1,删除发送接收任务
+
+CANFD过滤功能测试例程 (canfd_id_filter_example.c)
+- 初始化CAN0,CAN1基本配置,仲裁域波特率和数据域波特率配置为 1M/S+2M/S
+- 过滤模式1配置为只可接收id为0x0F的帧
+- CAN0向CAN1发送id为(0x00~0x0F)的标准帧,CAN1成功接收id=0x0F的帧,表示成功过滤除0x0F以外的所有帧
+- CAN1向CAN0发送id为(0x00~0x0F)的标准帧,CAN0成功接收id=0x0F的帧,表示成功过滤除0x0F以外的所有帧
+- 过滤模式2配置为比较较高的两位,忽略较低的两位
+- CAN0向CAN1发送id为(0x00~0x0F)的标准帧,CAN1成功接收id=0x0C、0x0D、 0x0E、0x0F的帧
+- CAN1向CAN0发送id为(0x00~0x0F)的标准帧,CAN0成功接收id=0x0C、0x0D、 0x0E、0x0F的帧
+- 以上收发测试完成后,去初始化CAN0,CAN1,删除发送接收任务
+
+## 2. 如何使用例程
+
+本例程需要用到
+- Phytium开发板(E2000D/E2000Q)
+- [Phytium freeRTOS SDK](https://gitee.com/phytium_embedded/phytium-free-rtos-sdk)
+- [Phytium standalone SDK](https://gitee.com/phytium_embedded/phytium-standalone-sdk)
+### 2.1 硬件配置方法
+
+本例程支持的硬件平台包括
+
+- E2000D
+- E2000Q
+
+对应的配置项是,
+
+- CONFIG_TARGET_E2000D
+- CONFIG_TARGET_E2000Q
+
+### 2.2 SDK配置方法
+
+本例程需要,
+
+- 使能Shell
+- 使能Can
+
+对应的配置项是,
+
+- CONFIG_USE_LETTER_SHELL
+- CONFIG_FREERTOS_USE_CAN
+- CONFIG_USE_CANFD
+- CONFIG_USE_CAN
+
+本例子已经提供好具体的编译指令,以下进行介绍:
+- make 将目录下的工程进行编译
+- make clean 将目录下的工程进行清理
+- make image 将目录下的工程进行编译,并将生成的elf 复制到目标地址
+- make list_kconfig 当前工程支持哪些配置文件
+- make load_kconfig LOAD_CONFIG_NAME= 将预设配置加载至工程中
+- make menuconfig 配置目录下的参数变量
+- make backup_kconfig 将目录下的sdkconfig 备份到./configs下
+
+具体使用方法为:
+- 在当前目录下
+- 执行以上指令
+
+### 2.3 构建和下载
+
+>描述构建、烧录下载镜像的过程,列出相关的命令
+
+[参考 freertos 使用说明](../../../../docs/reference/usr/usage.md)
+
+#### 2.3.1 下载过程
+
+- host侧设置重启host侧tftp服务器
+```
+sudo service tftpd-hpa restart
+```
+
+- 开发板侧使用bootelf命令跳转
+```
+setenv ipaddr 192.168.4.20
+setenv serverip 192.168.4.50
+setenv gatewayip 192.168.4.1
+tftpboot 0x90100000 freertos.elf
+bootelf -p 0x90100000
+```
+
+### 2.4 输出与实验现象
+- 系统进入后,输入```canfd```查看指令说明
+- 执行相应的测试例子,创建测试任务
+- 测试任务能够能正常创建和删除,输入```ps```查看任务状态正常,即测试正常
+
+
+
+- 输入```canfd intr```,启动canfd中断模式发送接收测试例子,测试完标准帧和扩展帧后自动删除任务
+
+
+......
+
+
+- 输入```canfd polled```,启动canfd轮询模式发送接收测试例子,测试完标准帧和扩展帧后自动删除任务
+
+
+......
+
+
+- 输入```canfd filter```,启动canfd id滤波功能测试例子,测试1只接收id=0x0F的帧,测试2接收帧id&mask(mask=0x03,结果为0表示比较,为1表示忽略),比较接收id和接收id&maskid(maskid=0x0F)的结果。全部匹配则接收否则滤除。
+滤波测试例子1
+
+......
+
+滤波测试例子2
+
+......
+
+
+## 3. 如何解决问题
+
+- 使用can0和can1进行回环测试时,需要将can0和can1的H和L信号线分别进行短接
+
+## 4. 修改历史记录
+
+
+
+
diff --git a/example/peripheral/can/canfd/configs/e2000d_aarch32_demo_canfd.config b/example/peripheral/can/canfd/configs/e2000d_aarch32_demo_canfd.config
new file mode 100644
index 0000000000000000000000000000000000000000..14563e5862590f20a5a6e715fc97dc6212faefd5
--- /dev/null
+++ b/example/peripheral/can/canfd/configs/e2000d_aarch32_demo_canfd.config
@@ -0,0 +1,370 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+# CONFIG_ARCH_ARMV8_AARCH64 is not set
+CONFIG_ARCH_ARMV8_AARCH32=y
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH32=y
+CONFIG_ARCH_EXECUTION_STATE="aarch32"
+
+#
+# Fpu configuration
+#
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
+# end of Fpu configuration
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+CONFIG_USE_AARCH64_L1_TO_AARCH32=y
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+# CONFIG_TARGET_E2000Q is not set
+CONFIG_TARGET_E2000D=y
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="d"
+CONFIG_SOC_CORE_NUM=2
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_E2000D_DEMO_BOARD=y
+CONFIG_BOARD_NAME="demo"
+
+#
+# IO mux configuration when board start up
+#
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_ADC_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="can"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+CONFIG_LOG_INFO=y
+# CONFIG_LOG_WARN is not set
+# CONFIG_LOG_ERROR is not set
+# CONFIG_LOG_NONE is not set
+# CONFIG_LOG_EXTRA_INFO is not set
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+# CONFIG_USE_GPIO is not set
+# CONFIG_USE_ETH is not set
+CONFIG_USE_CAN=y
+
+#
+# CAN Configuration
+#
+CONFIG_USE_FCAN=y
+CONFIG_FCAN_USE_CANFD=y
+# end of CAN Configuration
+
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+# CONFIG_USE_SDMMC is not set
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+CONFIG_CHECK_DEPS=y
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_OUTPUT_ASM_DIS is not set
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+CONFIG_USE_COMPILE_CHAIN=y
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_SVC_STACK_SIZE=0x1000
+CONFIG_SYS_STACK_SIZE=0x1000
+CONFIG_IRQ_STACK_SIZE=0x1000
+CONFIG_ABORT_STACK_SIZE=0x1000
+CONFIG_FIQ_STACK_SIZE=0x1000
+CONFIG_UNDEF_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+CONFIG_FREERTOS_USE_CAN=y
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+# CONFIG_USE_LWIP is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+# CONFIG_USE_TLSF is not set
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/sdio/configs/e2000d_aarch64_demo_sdio.config b/example/peripheral/can/canfd/configs/e2000d_aarch64_demo_canfd.config
similarity index 92%
rename from example/peripheral/sdio/configs/e2000d_aarch64_demo_sdio.config
rename to example/peripheral/can/canfd/configs/e2000d_aarch64_demo_canfd.config
index 743c876479301a647c6404cfdb63ebb4b1e483e4..81ee6ad089882a01caab0d083746f0a71a390368 100644
--- a/example/peripheral/sdio/configs/e2000d_aarch64_demo_sdio.config
+++ b/example/peripheral/can/canfd/configs/e2000d_aarch64_demo_canfd.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -91,7 +85,7 @@ CONFIG_BOARD_NAME="demo"
#
# Build project name
#
-CONFIG_TARGET_NAME="sdio"
+CONFIG_TARGET_NAME="can"
# end of Build project name
# end of Board Configuration
@@ -100,11 +94,11 @@ CONFIG_TARGET_NAME="sdio"
#
# CONFIG_LOG_VERBOS is not set
# CONFIG_LOG_DEBUG is not set
-# CONFIG_LOG_INFO is not set
+CONFIG_LOG_INFO=y
# CONFIG_LOG_WARN is not set
-CONFIG_LOG_ERROR=y
+# CONFIG_LOG_ERROR is not set
# CONFIG_LOG_NONE is not set
-CONFIG_LOG_EXTRA_INFO=y
+# CONFIG_LOG_EXTRA_INFO is not set
# CONFIG_LOG_DISPALY_CORE_NUM is not set
# CONFIG_BOOTUP_DEBUG_PRINTS is not set
CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
@@ -126,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -138,13 +130,19 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_GPIO is not set
# CONFIG_USE_ETH is not set
-# CONFIG_USE_CAN is not set
+CONFIG_USE_CAN=y
+
+#
+# CAN Configuration
+#
+CONFIG_USE_FCAN=y
+CONFIG_FCAN_USE_CANFD=y
+# end of CAN Configuration
+
# CONFIG_USE_I2C is not set
# CONFIG_USE_TIMER is not set
# CONFIG_USE_MIO is not set
-CONFIG_USE_SDMMC=y
-# CONFIG_ENABLE_FSDMMC is not set
-CONFIG_ENABLE_FSDIO=y
+# CONFIG_USE_SDMMC is not set
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
@@ -157,6 +155,7 @@ CONFIG_ENABLE_FSDIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -196,7 +195,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -277,7 +277,7 @@ CONFIG_FREERTOS_USE_UART=y
#
# Freertos Can Drivers
#
-# CONFIG_FREERTOS_USE_CAN is not set
+CONFIG_FREERTOS_USE_CAN=y
# end of Freertos Can Drivers
#
@@ -321,29 +321,22 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-CONFIG_USE_SDMMC_CMD=y
-
-#
-# Sdmmc configuration
-#
-# CONFIG_SDMMC_USE_FSDMMC is not set
-CONFIG_SDMMC_USE_FSDIO=y
-# end of Sdmmc configuration
-
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
# CONFIG_USE_FATFS_0_1_4 is not set
-CONFIG_USE_TLSF=y
+# CONFIG_USE_TLSF is not set
# CONFIG_USE_SPIFFS is not set
# CONFIG_USE_LITTLE_FS is not set
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -363,4 +356,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/can/canfd/configs/e2000q_aarch32_demo_canfd.config b/example/peripheral/can/canfd/configs/e2000q_aarch32_demo_canfd.config
new file mode 100644
index 0000000000000000000000000000000000000000..bb07832fa149c4ef90500c71cb1f88f5d8d0722a
--- /dev/null
+++ b/example/peripheral/can/canfd/configs/e2000q_aarch32_demo_canfd.config
@@ -0,0 +1,369 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+# CONFIG_ARCH_ARMV8_AARCH64 is not set
+CONFIG_ARCH_ARMV8_AARCH32=y
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH32=y
+CONFIG_ARCH_EXECUTION_STATE="aarch32"
+
+#
+# Fpu configuration
+#
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
+# end of Fpu configuration
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+CONFIG_USE_AARCH64_L1_TO_AARCH32=y
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+CONFIG_TARGET_E2000Q=y
+# CONFIG_TARGET_E2000D is not set
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="q"
+CONFIG_SOC_CORE_NUM=4
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_BOARD_NAME="demo"
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+CONFIG_E2000Q_DEMO_BOARD=y
+
+#
+# IO mux configuration when board start up
+#
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="can"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+CONFIG_LOG_INFO=y
+# CONFIG_LOG_WARN is not set
+# CONFIG_LOG_ERROR is not set
+# CONFIG_LOG_NONE is not set
+# CONFIG_LOG_EXTRA_INFO is not set
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+# CONFIG_USE_GPIO is not set
+# CONFIG_USE_ETH is not set
+CONFIG_USE_CAN=y
+
+#
+# CAN Configuration
+#
+CONFIG_USE_FCAN=y
+CONFIG_FCAN_USE_CANFD=y
+# end of CAN Configuration
+
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+# CONFIG_USE_SDMMC is not set
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+CONFIG_CHECK_DEPS=y
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_OUTPUT_ASM_DIS is not set
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+CONFIG_USE_COMPILE_CHAIN=y
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_SVC_STACK_SIZE=0x1000
+CONFIG_SYS_STACK_SIZE=0x1000
+CONFIG_IRQ_STACK_SIZE=0x1000
+CONFIG_ABORT_STACK_SIZE=0x1000
+CONFIG_FIQ_STACK_SIZE=0x1000
+CONFIG_UNDEF_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+CONFIG_FREERTOS_USE_CAN=y
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+# CONFIG_USE_LWIP is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+# CONFIG_USE_TLSF is not set
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/can/canfd/configs/e2000q_aarch64_demo_canfd.config b/example/peripheral/can/canfd/configs/e2000q_aarch64_demo_canfd.config
new file mode 100644
index 0000000000000000000000000000000000000000..611989b3a8c7b94e4315ec5218f34fbbf8f92087
--- /dev/null
+++ b/example/peripheral/can/canfd/configs/e2000q_aarch64_demo_canfd.config
@@ -0,0 +1,359 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+CONFIG_ARCH_ARMV8_AARCH64=y
+# CONFIG_ARCH_ARMV8_AARCH32 is not set
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH64=y
+CONFIG_ARCH_EXECUTION_STATE="aarch64"
+CONFIG_ARM_NEON=y
+CONFIG_ARM_CRC=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_ARM_FLOAT_POINT=y
+# CONFIG_GCC_CODE_MODEL_TINY is not set
+CONFIG_GCC_CODE_MODEL_SMALL=y
+# CONFIG_GCC_CODE_MODEL_LARGE is not set
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
+# CONFIG_MMU_DEBUG_PRINTS is not set
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+CONFIG_TARGET_E2000Q=y
+# CONFIG_TARGET_E2000D is not set
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="q"
+CONFIG_SOC_CORE_NUM=4
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_BOARD_NAME="demo"
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+CONFIG_E2000Q_DEMO_BOARD=y
+
+#
+# IO mux configuration when board start up
+#
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="can"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+CONFIG_LOG_INFO=y
+# CONFIG_LOG_WARN is not set
+# CONFIG_LOG_ERROR is not set
+# CONFIG_LOG_NONE is not set
+# CONFIG_LOG_EXTRA_INFO is not set
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+# CONFIG_USE_GPIO is not set
+# CONFIG_USE_ETH is not set
+CONFIG_USE_CAN=y
+
+#
+# CAN Configuration
+#
+CONFIG_USE_FCAN=y
+CONFIG_FCAN_USE_CANFD=y
+# end of CAN Configuration
+
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+# CONFIG_USE_SDMMC is not set
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+CONFIG_CHECK_DEPS=y
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_OUTPUT_ASM_DIS is not set
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+CONFIG_USE_COMPILE_CHAIN=y
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_STACK_SIZE=0x100000
+CONFIG_FPU_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+CONFIG_FREERTOS_USE_CAN=y
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+# CONFIG_USE_LWIP is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+# CONFIG_USE_TLSF is not set
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/can/canfd/figs/canfd.png b/example/peripheral/can/canfd/figs/canfd.png
new file mode 100644
index 0000000000000000000000000000000000000000..c479501d601dc9ffd7372f81a1cea22c74f4a854
Binary files /dev/null and b/example/peripheral/can/canfd/figs/canfd.png differ
diff --git a/example/peripheral/can/canfd/figs/delete.png b/example/peripheral/can/canfd/figs/delete.png
new file mode 100644
index 0000000000000000000000000000000000000000..d83db7332d131ab9f4e592e1b4ab94b70b2af7be
Binary files /dev/null and b/example/peripheral/can/canfd/figs/delete.png differ
diff --git a/example/peripheral/can/canfd/figs/filter1.png b/example/peripheral/can/canfd/figs/filter1.png
new file mode 100644
index 0000000000000000000000000000000000000000..8985a6aa7dc532a5b7ffa4e5e58b6c4923d85909
Binary files /dev/null and b/example/peripheral/can/canfd/figs/filter1.png differ
diff --git a/example/peripheral/can/canfd/figs/filter1_success.png b/example/peripheral/can/canfd/figs/filter1_success.png
new file mode 100644
index 0000000000000000000000000000000000000000..9765a17f3ee8a2177dbdf565502bb2a17b711023
Binary files /dev/null and b/example/peripheral/can/canfd/figs/filter1_success.png differ
diff --git a/example/peripheral/can/canfd/figs/filter2.png b/example/peripheral/can/canfd/figs/filter2.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed38eaf236f00be3972441b559400558d08d799f
Binary files /dev/null and b/example/peripheral/can/canfd/figs/filter2.png differ
diff --git a/example/peripheral/can/canfd/figs/filter2_success.png b/example/peripheral/can/canfd/figs/filter2_success.png
new file mode 100644
index 0000000000000000000000000000000000000000..755707d86c2a3ad89bc74f66cd14cd96d7fb9961
Binary files /dev/null and b/example/peripheral/can/canfd/figs/filter2_success.png differ
diff --git a/example/peripheral/can/canfd/figs/intr.png b/example/peripheral/can/canfd/figs/intr.png
new file mode 100644
index 0000000000000000000000000000000000000000..7b43a5dcdb2f6dc79ec762f1ef97242ca8a671d1
Binary files /dev/null and b/example/peripheral/can/canfd/figs/intr.png differ
diff --git a/example/peripheral/can/canfd/figs/intr_exid.png b/example/peripheral/can/canfd/figs/intr_exid.png
new file mode 100644
index 0000000000000000000000000000000000000000..a0b21c90cdbabcb34ae9b258dcb155fe4ae9d960
Binary files /dev/null and b/example/peripheral/can/canfd/figs/intr_exid.png differ
diff --git a/example/peripheral/can/canfd/figs/intr_stid.png b/example/peripheral/can/canfd/figs/intr_stid.png
new file mode 100644
index 0000000000000000000000000000000000000000..ea27690aef556a2978f389bac5f56d3585b05e59
Binary files /dev/null and b/example/peripheral/can/canfd/figs/intr_stid.png differ
diff --git a/example/peripheral/can/canfd/figs/polled.png b/example/peripheral/can/canfd/figs/polled.png
new file mode 100644
index 0000000000000000000000000000000000000000..7cdce9b08fa9cb15283412119419aff1056d8710
Binary files /dev/null and b/example/peripheral/can/canfd/figs/polled.png differ
diff --git a/example/peripheral/can/canfd/figs/polled_exid.png b/example/peripheral/can/canfd/figs/polled_exid.png
new file mode 100644
index 0000000000000000000000000000000000000000..f2305fcabe2a064c1ffb1d7cbd6cccd8136fecb1
Binary files /dev/null and b/example/peripheral/can/canfd/figs/polled_exid.png differ
diff --git a/example/peripheral/can/canfd/figs/polled_stid.png b/example/peripheral/can/canfd/figs/polled_stid.png
new file mode 100644
index 0000000000000000000000000000000000000000..af73e557f792a327393c376450203c57521137ad
Binary files /dev/null and b/example/peripheral/can/canfd/figs/polled_stid.png differ
diff --git a/example/peripheral/can/canfd/inc/canfd_id_filter_example.h b/example/peripheral/can/canfd/inc/canfd_id_filter_example.h
new file mode 100644
index 0000000000000000000000000000000000000000..4adc0f8d93ad4c4a50c2d6812a0536e4eb22dbcf
--- /dev/null
+++ b/example/peripheral/can/canfd/inc/canfd_id_filter_example.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: canfd_id_filter_example.h
+ * Date: 2023-10-20 10:11:40
+ * LastEditTime: 2023-10-20 19:00:00
+ * Description: This file is for task create function define
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2023/10/17 first commit
+ */
+
+
+#ifndef CANFD_ID_FILTER_EXAMPLE_H
+#define CANFD_ID_FILTER_EXAMPLE_H
+
+#include "portmacro.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/* canfd test function */
+BaseType_t FFreeRTOSCanfdCreateFilterTestTask(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // !
\ No newline at end of file
diff --git a/example/peripheral/can/canfd/inc/canfd_intr_loopback_mode_example.h b/example/peripheral/can/canfd/inc/canfd_intr_loopback_mode_example.h
new file mode 100644
index 0000000000000000000000000000000000000000..16e15d56cf316ebf0f861801f0443bbf09f00218
--- /dev/null
+++ b/example/peripheral/can/canfd/inc/canfd_intr_loopback_mode_example.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: canfd_intr_loopback_mode_example.h
+ * Date: 2023-10-20 10:11:40
+ * LastEditTime: 2023-10-20 19:00:00
+ * Description: This file is for task create function define
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2023/10/17 first commit
+ */
+
+
+#ifndef CANFD_INTR_LOOPBACK_MODE_EXAMPLE_H
+#define CANFD_INTR_LOOPBACK_MODE_EXAMPLE_H
+
+#include "portmacro.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/* canfd test function */
+BaseType_t FFreeRTOSCreateCanfdIntrTestTask(void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // !
\ No newline at end of file
diff --git a/example/peripheral/can/canfd/inc/canfd_polled_loopback_mode_example copy.h b/example/peripheral/can/canfd/inc/canfd_polled_loopback_mode_example copy.h
new file mode 100644
index 0000000000000000000000000000000000000000..33cbd2ece8b60dc513486a9f24c0f682acf43b9d
--- /dev/null
+++ b/example/peripheral/can/canfd/inc/canfd_polled_loopback_mode_example copy.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: canfd_polled_loopback_mode_example copy.h
+ * Date: 2023-10-20 10:11:40
+ * LastEditTime: 2023-10-20 19:00:00
+ * Description: This file is for task create function define
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2023/10/17 first commit
+ */
+
+
+#ifndef CANFD_POLLED_LOOPBACK_MODE_EXAMPLE_H
+#define CANFD_POLLED_LOOPBACK_MODE_EXAMPLE_H
+
+#include "portmacro.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/* canfd test function */
+BaseType_t FFreeRTOSCreateCanfdPolledTestTask(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // !
\ No newline at end of file
diff --git a/example/peripheral/can/canfd/main.c b/example/peripheral/can/canfd/main.c
new file mode 100644
index 0000000000000000000000000000000000000000..156a904fb6a09cc9c94a866063b61a83ec51c01a
--- /dev/null
+++ b/example/peripheral/can/canfd/main.c
@@ -0,0 +1,48 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: main.c
+ * Date: 2023-10-20 08:17:59
+ * LastEditTime: 2023-10-20 08:17:59
+ * Description: This file is for CANFD example that running CANFD task、shell task and open scheduler
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2023/10/20 first commit
+ */
+
+#include "shell.h"
+#include "shell_port.h"
+#include
+#include "canfd_intr_loopback_mode_example.h"
+#include "canfd_polled_loopback_mode_example copy.h"
+#include "canfd_id_filter_example.h"
+
+int main(void)
+{
+ BaseType_t ret;
+
+ ret = LSUserShellTask() ;
+ if (ret != pdPASS)
+ {
+ goto FAIL_EXIT;
+ }
+
+ vTaskStartScheduler(); /* 启动任务,开启调度 */
+ while (1); /* 正常不会执行到这里 */
+
+FAIL_EXIT:
+ printf("failed 0x%x. \r\n", ret);
+ return 0;
+}
diff --git a/example/peripheral/can/canfd/makefile b/example/peripheral/can/canfd/makefile
new file mode 100644
index 0000000000000000000000000000000000000000..941abe469ed0be7dc0390def62cecbeba1bb14d9
--- /dev/null
+++ b/example/peripheral/can/canfd/makefile
@@ -0,0 +1,31 @@
+
+PROJECT_DIR = $(CURDIR)
+FREERTOS_SDK_DIR = $(CURDIR)/../../../..
+
+
+# # 设置启动镜像名
+BOOT_IMG_NAME ?= freertos
+
+USER_CSRC := main.c
+USER_CSRC += $(wildcard src/*.c)
+
+USER_ASRC :=
+USER_CXXSRC :=
+
+USER_INCLUDE := $(PROJECT_DIR) \
+ $(PROJECT_DIR)/inc \
+
+
+include $(FREERTOS_SDK_DIR)/tools/makeall.mk
+
+USR_BOOT_DIR ?= /mnt/d/tftboot
+
+
+image:
+ $(MAKE) clean
+ $(MAKE) all -j
+ @cp ./$(IMAGE_OUT_NAME).elf $(USR_BOOT_DIR)/freertos.elf
+ifdef CONFIG_OUTPUT_BINARY
+ @cp ./$(IMAGE_OUT_NAME).bin $(USR_BOOT_DIR)/freertos.bin
+endif
+ @ls $(USR_BOOT_DIR)/$(BOOT_IMG_NAME).* -l
\ No newline at end of file
diff --git a/example/peripheral/can/canfd/sdkconfig b/example/peripheral/can/canfd/sdkconfig
new file mode 100644
index 0000000000000000000000000000000000000000..611989b3a8c7b94e4315ec5218f34fbbf8f92087
--- /dev/null
+++ b/example/peripheral/can/canfd/sdkconfig
@@ -0,0 +1,359 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+CONFIG_ARCH_ARMV8_AARCH64=y
+# CONFIG_ARCH_ARMV8_AARCH32 is not set
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH64=y
+CONFIG_ARCH_EXECUTION_STATE="aarch64"
+CONFIG_ARM_NEON=y
+CONFIG_ARM_CRC=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_ARM_FLOAT_POINT=y
+# CONFIG_GCC_CODE_MODEL_TINY is not set
+CONFIG_GCC_CODE_MODEL_SMALL=y
+# CONFIG_GCC_CODE_MODEL_LARGE is not set
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
+# CONFIG_MMU_DEBUG_PRINTS is not set
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+CONFIG_TARGET_E2000Q=y
+# CONFIG_TARGET_E2000D is not set
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="q"
+CONFIG_SOC_CORE_NUM=4
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_BOARD_NAME="demo"
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+CONFIG_E2000Q_DEMO_BOARD=y
+
+#
+# IO mux configuration when board start up
+#
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="can"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+CONFIG_LOG_INFO=y
+# CONFIG_LOG_WARN is not set
+# CONFIG_LOG_ERROR is not set
+# CONFIG_LOG_NONE is not set
+# CONFIG_LOG_EXTRA_INFO is not set
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+# CONFIG_USE_GPIO is not set
+# CONFIG_USE_ETH is not set
+CONFIG_USE_CAN=y
+
+#
+# CAN Configuration
+#
+CONFIG_USE_FCAN=y
+CONFIG_FCAN_USE_CANFD=y
+# end of CAN Configuration
+
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+# CONFIG_USE_SDMMC is not set
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+CONFIG_CHECK_DEPS=y
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_OUTPUT_ASM_DIS is not set
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+CONFIG_USE_COMPILE_CHAIN=y
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_STACK_SIZE=0x100000
+CONFIG_FPU_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+CONFIG_FREERTOS_USE_CAN=y
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+# CONFIG_USE_LWIP is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+# CONFIG_USE_TLSF is not set
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/can/sdkconfig.h b/example/peripheral/can/canfd/sdkconfig.h
similarity index 88%
rename from example/peripheral/can/sdkconfig.h
rename to example/peripheral/can/canfd/sdkconfig.h
index d7986c5a922fe97282d0c02e74ac51414e7a7c84..82730984ad7235e383bc9d413d6c50bb55ad2321 100644
--- a/example/peripheral/can/sdkconfig.h
+++ b/example/peripheral/can/canfd/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -33,7 +29,6 @@
/* CONFIG_GCC_CODE_MODEL_LARGE is not set */
/* end of Compiler configuration */
#define CONFIG_USE_CACHE
-/* CONFIG_USE_L3CACHE is not set */
#define CONFIG_USE_MMU
/* CONFIG_BOOT_WITH_FLUSH_CACHE is not set */
/* CONFIG_MMU_DEBUG_PRINTS is not set */
@@ -43,17 +38,19 @@
/* Soc configuration */
/* CONFIG_TARGET_PHYTIUMPI is not set */
-/* CONFIG_TARGET_E2000Q is not set */
+#define CONFIG_TARGET_E2000Q
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
-#define CONFIG_TARGET_FT2004
+/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
-#define CONFIG_SOC_NAME "ft2004"
+#define CONFIG_SOC_NAME "e2000"
+#define CONFIG_TARGET_TYPE_NAME "q"
#define CONFIG_SOC_CORE_NUM 4
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
+#define CONFIG_TARGET_E2000
/* CONFIG_USE_SPINLOCK is not set */
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
@@ -62,11 +59,21 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "dsk"
-#define CONFIG_FT2004_DSK_BOARD
+#define CONFIG_BOARD_NAME "demo"
+/* CONFIG_USE_SPI_IOPAD is not set */
+/* CONFIG_USE_GPIO_IOPAD is not set */
+/* CONFIG_USE_CAN_IOPAD is not set */
+/* CONFIG_USE_QSPI_IOPAD is not set */
+/* CONFIG_USE_PWM_IOPAD is not set */
+/* CONFIG_USE_MIO_IOPAD is not set */
+/* CONFIG_USE_TACHO_IOPAD is not set */
+/* CONFIG_USE_UART_IOPAD is not set */
+/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
+#define CONFIG_E2000Q_DEMO_BOARD
/* IO mux configuration when board start up */
+/* end of IO mux configuration when board start up */
/* CONFIG_CUS_DEMO_BOARD is not set */
/* Build project name */
@@ -99,12 +106,10 @@
/* Drivers configuration */
#define CONFIG_USE_IOMUX
-#define CONFIG_ENABLE_IOCTRL
-/* CONFIG_ENABLE_IOPAD is not set */
+/* CONFIG_ENABLE_IOCTRL is not set */
+#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -118,6 +123,7 @@
/* CAN Configuration */
#define CONFIG_USE_FCAN
+#define CONFIG_FCAN_USE_CANFD
/* end of CAN Configuration */
/* CONFIG_USE_I2C is not set */
/* CONFIG_USE_TIMER is not set */
@@ -135,6 +141,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -170,7 +177,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -181,7 +189,7 @@
#define CONFIG_IMAGE_LOAD_ADDRESS 0x80100000
#define CONFIG_IMAGE_MAX_LENGTH 0x1000000
#define CONFIG_HEAP_SIZE 1
-#define CONFIG_STACK_SIZE 0x400
+#define CONFIG_STACK_SIZE 0x100000
#define CONFIG_FPU_STACK_SIZE 0x1000
/* end of Linker Options */
/* end of Build setup */
@@ -274,7 +282,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -285,9 +292,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -307,6 +316,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/peripheral/can/canfd/src/canfd_id_filter_example.c b/example/peripheral/can/canfd/src/canfd_id_filter_example.c
new file mode 100644
index 0000000000000000000000000000000000000000..10d75629e36f3372cb9150ff1db28d87f49815e0
--- /dev/null
+++ b/example/peripheral/can/canfd/src/canfd_id_filter_example.c
@@ -0,0 +1,484 @@
+/*
+ * Copyright : (C) 2023 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: canfd_id_filter_example.c
+ * Date: 2023-10-20 14:53:42
+ * LastEditTime: 2023-10-20 17:46:03
+ * Description: This file is for canfd id filter example function implmentation
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2023/10/7 first release
+ */
+
+/***************************** Include Files *********************************/
+#include
+#include
+#include "FreeRTOSConfig.h"
+#include "FreeRTOS.h"
+#include "task.h"
+#include "timers.h"
+#include "fcan.h"
+#include "fcan_os.h"
+#include "fcpu_info.h"
+#include "fio_mux.h"
+#include "fassert.h"
+#include "fdebug.h"
+
+/************************** Constant Definitions *****************************/
+#define FCAN_TEST_DEBUG_TAG "FCANFD_FREERTOS_FILTER_TEST"
+#define FCAN_TEST_DEBUG(format, ...) FT_DEBUG_PRINT_D(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FCAN_TEST_INFO(format, ...) FT_DEBUG_PRINT_I(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FCAN_TEST_WARN(format, ...) FT_DEBUG_PRINT_W(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FCAN_TEST_ERROR(format, ...) FT_DEBUG_PRINT_E(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+
+/* canfd frame config */
+#define FCAN_SEND_LENGTH 16//canfd帧长度
+#define FCAN_FILTER_ID 0x02//滤波使用的id
+
+/* canfd send period */
+#define CAN_SEND_PERIOD ( pdMS_TO_TICKS( 100UL ))
+
+#define ARB_BAUD_RATE 1000000
+#define DATA_BAUD_RATE 2000000
+
+/**************************** Type Definitions *******************************/
+typedef struct
+{
+ u32 count;
+ FFreeRTOSCan *os_can_p;
+} FCanQueueData;
+/************************** Variable Definitions *****************************/
+/* Declare a variable of type QueueHandle_t. This is used to store the queue that is accessed by all three tasks. */
+static QueueHandle_t xQueue;
+
+static xSemaphoreHandle test_semaphore;
+
+static xTaskHandle send_handle;
+static xTaskHandle recv_handle;
+
+static FFreeRTOSCan *os_can_ctrl_p[FCAN_NUM];
+
+static FCanFrame send_frame[FCAN_NUM];
+static FCanFrame recv_frame[FCAN_NUM];
+
+static void FFreeRTOSCanfdSendTask(void *pvParameters);
+static void FFreeRTOSCanfdRecvTask(void *pvParameters);
+static void FFreeRTOSCanDelete(void);
+
+/***************** Macros (Inline Functions) Definitions *********************/
+
+/************************** Function Prototypes ******************************/
+
+/************************** Function *****************************************/
+static void FCanTxIrqCallback(void *args)
+{
+ FFreeRTOSCan *os_can_p = (FFreeRTOSCan *)args;
+ FCAN_TEST_DEBUG("Can%d irq send frame is ok.", os_can_p->can_ctrl.config.instance_id);
+}
+
+static void FCanRxIrqCallback(void *args)
+{
+ FFreeRTOSCan *os_can_p = (FFreeRTOSCan *)args;
+ FCAN_TEST_DEBUG("Can%d irq recv frame callback.", os_can_p->can_ctrl.config.instance_id);
+
+ static FCanQueueData xSendStructure;
+ xSendStructure.os_can_p = os_can_p;
+
+ portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
+
+ xQueueSendToBackFromISR(xQueue, &xSendStructure, &xHigherPriorityTaskWoken);
+
+ /* never call taskYIELD() form ISR! */
+ portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
+}
+
+static FError FFreeRTOSCanIntrSet(FFreeRTOSCan *os_can_p)
+{
+ FError ret = FCAN_SUCCESS;
+
+ FCanIntrEventConfig intr_event;
+ memset(&intr_event, 0, sizeof(intr_event));
+
+ intr_event.type = FCAN_INTR_EVENT_SEND;
+ intr_event.handler = FCanTxIrqCallback;
+ intr_event.param = (void *)os_can_p;
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_INTR_SET, &intr_event);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FCAN_INTR_EVENT_SEND failed.");
+ return ret;
+ }
+
+ intr_event.type = FCAN_INTR_EVENT_RECV;
+ intr_event.handler = FCanRxIrqCallback;
+ intr_event.param = (void *)os_can_p;
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_INTR_SET, &intr_event);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FCAN_INTR_EVENT_RECV failed.");
+ return ret;
+ }
+
+ u32 cpu_id;
+ GetCpuId(&cpu_id);
+ FCanCtrl *instance_p = &os_can_p->can_ctrl;
+ InterruptSetTargetCpus(instance_p->config.irq_num, cpu_id);
+ InterruptSetPriority(instance_p->config.irq_num, instance_p->config.irq_prority);
+ InterruptInstall(instance_p->config.irq_num, FCanIntrHandler, instance_p, "can");
+ InterruptUmask(instance_p->config.irq_num);
+
+ return ret;
+}
+
+
+static FError FFreeRTOSCanBaudrateSet(FFreeRTOSCan *os_can_p)
+{
+ FError ret = FCAN_SUCCESS;
+
+ FCanBaudrateConfig arb_segment_config;
+ FCanBaudrateConfig data_segment_config;
+ memset(&arb_segment_config, 0, sizeof(arb_segment_config));
+ memset(&data_segment_config, 0, sizeof(data_segment_config));
+ arb_segment_config.baudrate = ARB_BAUD_RATE;
+ arb_segment_config.auto_calc = TRUE;
+ arb_segment_config.segment = FCAN_ARB_SEGMENT;
+
+ data_segment_config.baudrate = DATA_BAUD_RATE;
+ data_segment_config.auto_calc = TRUE;
+ data_segment_config.segment = FCAN_DATA_SEGMENT;
+
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_BAUDRATE_SET, &arb_segment_config);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl arb_segment_config failed.");
+ return ret;
+ }
+
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_BAUDRATE_SET, &data_segment_config);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl data_segment_config failed.");
+ return ret;
+ }
+ return ret;
+}
+
+
+static FError FFreeRTOSCanIdMaskSet(FFreeRTOSCan *os_can_p, void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+
+ if ( ((int)(uintptr)pvParameters) == 1 )
+ {
+ FCanIdMaskConfig id_mask;
+ memset(&id_mask, 0, sizeof(id_mask));
+ for (int i = 0; i < FCAN_ACC_ID_REG_NUM; i++)
+ {
+ id_mask.filter_index = i;
+ id_mask.id = 0x0F;//只接收id的消息
+ id_mask.mask = 0x00;//掩码 FCAN_ACC_IDN_MASK 对应位为 1:则忽略 0:则比较
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_ID_MASK_SET, &id_mask);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ID_MASK_SET %d failed.", i);
+ return ret;
+ }
+ }
+ }
+ else if ( ((int)(uintptr)pvParameters) == 2 )
+ {
+ FCanIdMaskConfig id_mask;
+ memset(&id_mask, 0, sizeof(id_mask));
+ for (int i = 0; i < FCAN_ACC_ID_REG_NUM; i++)
+ {
+ id_mask.filter_index = i;
+ id_mask.id = 0x0C;//(canid&maskid)与canid比较
+ id_mask.mask = 0x03;//0011 比较高两位,忽略低两位
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_ID_MASK_SET, &id_mask);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ID_MASK_SET %d failed.", i);
+ return ret;
+ }
+ }
+ }
+
+ return ret;
+}
+
+static void FFreeRTOSCanInitTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ BaseType_t xReturn = pdPASS;
+ u32 instance_id = FCAN0_ID;
+ u32 tran_mode = FCAN_PROBE_NORMAL_MODE;
+ boolean use_canfd = TRUE;
+
+ /* The queue is created to hold a maximum of 32 structures of type xData. */
+ xQueue = xQueueCreate(32, sizeof(FCanQueueData));
+ if (xQueue == NULL)
+ {
+ printf("FFreeRTOSCanCreateFilterTestTask FCanQueueData create failed.\r\n");
+ }
+
+ /*init iomux*/
+ FIOMuxInit();
+
+ for (instance_id = FCAN0_ID; instance_id < FCAN_NUM; instance_id++)
+ {
+ FIOPadSetCanMux(instance_id);
+
+ /* init canfd controller */
+ os_can_ctrl_p[instance_id] = FFreeRTOSCanInit(instance_id);
+ if (os_can_ctrl_p[instance_id] == NULL)
+ {
+ printf("FFreeRTOSCanInit %d failed!!!\r\n", instance_id);
+ goto canfd_init_exit;
+ }
+
+ /* enable canfd */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_FD_ENABLE, (void *)use_canfd);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_FD_ENABLE failed.");
+ goto canfd_init_exit;
+ }
+
+ /* set canfd baudrate */
+ ret = FFreeRTOSCanBaudrateSet(os_can_ctrl_p[instance_id]);
+ if (FCAN_SUCCESS != ret)
+ {
+ printf("FFreeRTOSCanInit FFreeRTOSCanBaudrateSet failed!!!\r\n");
+ goto canfd_init_exit;
+ }
+
+ /* set canfd id mask */
+ ret = FFreeRTOSCanIdMaskSet(os_can_ctrl_p[instance_id], pvParameters);
+ if (FCAN_SUCCESS != ret)
+ {
+ printf("FFreeRTOSCanInit FFreeRTOSCanIdMaskSet failed!!!\r\n");
+ goto canfd_init_exit;
+ }
+
+ /* Identifier mask enable */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_ID_MASK_ENABLE, NULL);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ID_MASK_ENABLE failed.");
+ goto canfd_init_exit;
+ }
+
+ /* init canfd interrupt handler */
+ ret = FFreeRTOSCanIntrSet(os_can_ctrl_p[instance_id]);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanInit FFreeRTOSCanIntrSet failed!!!");
+ goto canfd_init_exit;
+ }
+
+ /* set canfd transfer mode */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_MODE_SET, &tran_mode);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_MODE_SET failed.");
+ goto canfd_init_exit;
+ }
+
+ /* enable canfd transfer */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_ENABLE, NULL);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ENABLE failed.");
+ goto canfd_init_exit;
+ }
+
+ }
+
+ printf("\r\nFFreeRTOSCanInitTask execute success !!!\r\n");
+
+ if ( ((int)(uintptr)pvParameters) == 1 )
+ {
+ printf("\r\nTest Example 1: Only frames with id 0x0F are received !!!\r\n");//测试例子1
+ }
+ else if ( ((int)(uintptr)pvParameters) == 2 )
+ {
+ printf("\r\nTest Example 2: Compare the higher two bit and ignore the lower two bit !!!\r\n");//测试例子2
+ }
+
+ /* canfd send task */
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanfdSendTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanfdSendTask",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ NULL,/* 任务入口函数参数 */
+ (UBaseType_t)configMAX_PRIORITIES - 5, /* 任务的优先级 */
+ (TaskHandle_t *)&send_handle); /* 任务控制 */
+ if (xReturn != pdPASS)
+ {
+ printf("Create FFreeRTOSCanfdSendTask failed.\r\n");
+ goto canfd_init_exit;
+ }
+
+ /* canfd recv task */
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanfdRecvTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanfdRecvTask",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ NULL,/* 任务入口函数参数 */
+ (UBaseType_t)configMAX_PRIORITIES - 5, /* 任务的优先级 */
+ (TaskHandle_t *)&recv_handle); /* 任务控制 */
+ if (xReturn != pdPASS)
+ {
+ printf("Create FFreeRTOSCanfdRecvTask failed.\r\n");
+ goto canfd_init_exit;
+ }
+
+canfd_init_exit:
+ vTaskDelete(NULL);
+}
+
+static void FFreeRTOSCanfdSendTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ u32 instance_id = FCAN0_ID;
+ u32 count[FCAN_NUM] = {0};
+ int i = 0;
+ /* As per most tasks, this task is implemented in an infinite loop. */
+ for (;;)
+ {
+ printf("\r\ncanfd send task running.\r\n");
+ for (instance_id = FCAN0_ID; instance_id <= FCAN1_ID; instance_id++)
+ {
+ //canfd id递增发送
+ for (u32 id = 0x00; id <= 0x0F; id++)
+ {
+ send_frame[instance_id].canid = id;//帧id
+ send_frame[instance_id].canid &= CAN_EFF_MASK;//检验帧有效性 CAN_SFF_MASK(标准帧) CAN_EFF_MASK(扩展帧)
+ send_frame[instance_id].candlc = FCAN_SEND_LENGTH;//帧长度
+ for (i = 0; i < send_frame[instance_id].candlc; i++)
+ {
+ send_frame[instance_id].data[i] = i + (instance_id << 4);
+ }
+ ret = FFreeRTOSCanSend(os_can_ctrl_p[instance_id], &send_frame[instance_id]);
+ if (ret != FCAN_SUCCESS)
+ {
+ printf("canfd%d send failed.\n", instance_id);
+ }
+ count[instance_id]++;
+ printf("\r\ncanfd%d send frame id is: 0x%02x\r\n", instance_id, send_frame[instance_id].canid);
+ vTaskDelay(CAN_SEND_PERIOD);
+ }
+ }
+ vTaskDelete(NULL);
+ }
+}
+
+static void FFreeRTOSCanfdRecvTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ u32 count[FCAN_NUM] = {0};
+ int i = 0;
+ static FCanQueueData xReceiveStructure;
+ FFreeRTOSCan *os_can_p;
+ u32 instance_id = FCAN0_ID;
+ /* As per most tasks, this task is implemented in an infinite loop. */
+ for (;;)
+ {
+ /* wait recv interrupt give semphore */
+ xQueueReceive(xQueue, &xReceiveStructure, portMAX_DELAY);
+ os_can_p = xReceiveStructure.os_can_p;
+ instance_id = os_can_p->can_ctrl.config.instance_id;
+ ret = FFreeRTOSCanRecv(os_can_p, &recv_frame[instance_id]);
+ if (FCAN_SUCCESS == ret)
+ {
+ printf("canfd%d recv id is 0x%02x.\r\n", instance_id, recv_frame[instance_id].canid);
+ for (i = 0; i < recv_frame[instance_id].candlc; i++)
+ {
+ if (recv_frame[instance_id].data[i] != send_frame[FCAN1_ID - instance_id].data[i])
+ {
+ FCAN_TEST_ERROR("\ncount=%d: canfd%d recv is not equal to canfd%d send!!!\r\n", count[instance_id], instance_id, FCAN1_ID - instance_id);
+ }
+ }
+ count[instance_id]++;
+
+ /* 被过滤的帧,进不到此函数 */
+ if ( recv_frame[instance_id].canid != send_frame[FCAN1_ID - instance_id].canid)
+ {
+ printf("The frame id:0x%02x was filtered successfully.\r\n", send_frame[FCAN1_ID - instance_id].canid);
+ }
+ else
+ {
+ printf("The frame id:0x%02x was receved successfully.\r\n", recv_frame[instance_id].canid);
+ }
+ }
+ if ((instance_id == 0) && (recv_frame[instance_id].canid == 0x0F))
+ {
+ FFreeRTOSCanDelete();
+ }
+ }
+}
+
+/* function1,2 of canfd id filter example */
+BaseType_t FFreeRTOSCanfdCreateFilterTestTask(void)
+{
+ BaseType_t xReturn = pdPASS;
+ BaseType_t timer_started = pdPASS;
+
+ test_semaphore = xSemaphoreCreateBinary();
+ if (test_semaphore != NULL)
+ {
+ xSemaphoreGive(test_semaphore);
+ }
+
+ /* canfd filter test1 task */
+ xSemaphoreTake(test_semaphore, portMAX_DELAY);
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanInitTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanInitTask",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ (void *)1,/* 任务入口函数参数 */
+ (UBaseType_t)1, /* 任务的优先级 */
+ NULL); /* 任务控制 */
+
+ /* canfd filter test2 task */
+ xSemaphoreTake(test_semaphore, portMAX_DELAY);
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanInitTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanInit2Task",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ (void *)2,/* 任务入口函数参数 */
+ (UBaseType_t)1, /* 任务的优先级 */
+ NULL); /* 任务控制 */
+
+ return xReturn;
+}
+
+static void FFreeRTOSCanDelete(void)
+{
+ /* deinit canfd os instance */
+ FFreeRTOSCanDeinit(os_can_ctrl_p[FCAN1_ID]);
+ FFreeRTOSCanDeinit(os_can_ctrl_p[FCAN0_ID]);
+
+ /*iopad deinit */
+ FIOMuxDeInit();
+
+ /* delete queue */
+ vQueueDelete(xQueue);
+
+ xSemaphoreGive(test_semaphore);
+
+ if (recv_handle)
+ {
+ vPrintf("\r\nDelete FFreeRTOSCanRecvTask success.\r\n");
+ vPrintf("\r\nDelete FFreeRTOSCanSendTask success.\r\n");
+ vTaskDelete(recv_handle);
+ }
+}
diff --git a/example/peripheral/can/canfd/src/canfd_intr_loopback_mode_example.c b/example/peripheral/can/canfd/src/canfd_intr_loopback_mode_example.c
new file mode 100644
index 0000000000000000000000000000000000000000..f104f62c4d37393fd0a4200c0afa1e0b676bd972
--- /dev/null
+++ b/example/peripheral/can/canfd/src/canfd_intr_loopback_mode_example.c
@@ -0,0 +1,468 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: canfd_intr_loopback_mode_example.c
+ * Date: 2023-10-20 11:32:48
+ * LastEditTime: 2023-10-20 11:32:48
+ * Description: This file is for CAN task implementations
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2023/10/7 first commit
+ */
+#include
+#include
+#include "FreeRTOSConfig.h"
+#include "FreeRTOS.h"
+#include "task.h"
+#include "timers.h"
+#include "fcan.h"
+#include "fcan_os.h"
+#include "fcpu_info.h"
+#include "fio_mux.h"
+#include "fassert.h"
+#include "fdebug.h"
+
+#define FCAN_TEST_DEBUG_TAG "FCANFD_FREERTOS_INTR_TEST"
+#define FCAN_TEST_DEBUG(format, ...) FT_DEBUG_PRINT_D(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FCAN_TEST_INFO(format, ...) FT_DEBUG_PRINT_I(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FCAN_TEST_WARN(format, ...) FT_DEBUG_PRINT_W(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FCAN_TEST_ERROR(format, ...) FT_DEBUG_PRINT_E(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+
+/* canfd frame config */
+#define FCAN_SEND_STID 0x000007FDU
+#define FCAN_SEND_EXID 0x1FFFFFFDU
+#define FCAN_SEND_LENGTH 16
+#define FCAN_SEND_STID_MAX 0x000007FFU
+#define FCAN_SEND_EXID_MAX 0x1FFFFFFFU
+
+/* canfd send period */
+#define CAN_SEND_PERIOD ( pdMS_TO_TICKS( 100UL ))
+
+/* canfd baudrate */
+#define ARB_BAUD_RATE 1000000
+#define DATA_BAUD_RATE 2000000
+
+typedef struct
+{
+ u32 count;
+ FFreeRTOSCan *os_can_p;
+} FCanQueueData;
+
+/* Declare a variable of type QueueHandle_t. This is used to store the queue that is accessed by all three tasks. */
+static QueueHandle_t xQueue;
+
+static xSemaphoreHandle test_semaphore;
+
+static xTaskHandle send_handle;
+static xTaskHandle recv_handle;
+
+static FFreeRTOSCan *os_can_ctrl_p[FCAN_NUM];
+
+static FCanFrame send_frame[FCAN_NUM];
+static FCanFrame recv_frame[FCAN_NUM];
+
+static void FFreeRTOSCanfdSendTask(void *pvParameters);
+static void FFreeRTOSCanfdRecvTask(void *pvParameters);
+static void FFreeRTOSCanDelete(void);
+
+static void FCanTxIrqCallback(void *args)
+{
+ FFreeRTOSCan *os_can_p = (FFreeRTOSCan *)args;
+ FCAN_TEST_DEBUG("Can%d irq send frame is ok.", os_can_p->can_ctrl.config.instance_id);
+}
+
+static void FCanRxIrqCallback(void *args)
+{
+ FFreeRTOSCan *os_can_p = (FFreeRTOSCan *)args;
+ FCAN_TEST_DEBUG("Can%d irq recv frame callback.", os_can_p->can_ctrl.config.instance_id);
+
+ static FCanQueueData xSendStructure;
+ xSendStructure.os_can_p = os_can_p;
+
+ portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
+
+ xQueueSendToBackFromISR(xQueue, &xSendStructure, &xHigherPriorityTaskWoken);
+
+ /* never call taskYIELD() form ISR! */
+ portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
+}
+
+static FError FFreeRTOSCanIntrSet(FFreeRTOSCan *os_can_p)
+{
+ FError ret = FCAN_SUCCESS;
+
+ FCanIntrEventConfig intr_event;
+ memset(&intr_event, 0, sizeof(intr_event));
+
+ intr_event.type = FCAN_INTR_EVENT_SEND;
+ intr_event.handler = FCanTxIrqCallback;
+ intr_event.param = (void *)os_can_p;
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_INTR_SET, &intr_event);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FCAN_INTR_EVENT_SEND failed.");
+ return ret;
+ }
+
+ intr_event.type = FCAN_INTR_EVENT_RECV;
+ intr_event.handler = FCanRxIrqCallback;
+ intr_event.param = (void *)os_can_p;
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_INTR_SET, &intr_event);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FCAN_INTR_EVENT_RECV failed.");
+ return ret;
+ }
+
+ u32 cpu_id;
+ GetCpuId(&cpu_id);
+ FCanCtrl *instance_p = &os_can_p->can_ctrl;
+ InterruptSetTargetCpus(instance_p->config.irq_num, cpu_id);
+ InterruptSetPriority(instance_p->config.irq_num, instance_p->config.irq_prority);
+ InterruptInstall(instance_p->config.irq_num, FCanIntrHandler, instance_p, "can");
+ InterruptUmask(instance_p->config.irq_num);
+
+ return ret;
+}
+
+
+static FError FFreeRTOSCanBaudrateSet(FFreeRTOSCan *os_can_p)
+{
+ FError ret = FCAN_SUCCESS;
+
+ FCanBaudrateConfig arb_segment_config;
+ FCanBaudrateConfig data_segment_config;
+ memset(&arb_segment_config, 0, sizeof(arb_segment_config));
+ memset(&data_segment_config, 0, sizeof(data_segment_config));
+ arb_segment_config.baudrate = ARB_BAUD_RATE;
+ arb_segment_config.auto_calc = TRUE;
+ arb_segment_config.segment = FCAN_ARB_SEGMENT;
+
+ data_segment_config.baudrate = DATA_BAUD_RATE;
+ data_segment_config.auto_calc = TRUE;
+ data_segment_config.segment = FCAN_DATA_SEGMENT;
+
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_BAUDRATE_SET, &arb_segment_config);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl arb_segment_config failed.");
+ return ret;
+ }
+
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_BAUDRATE_SET, &data_segment_config);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl data_segment_config failed.");
+ return ret;
+ }
+ return ret;
+}
+
+
+static FError FFreeRTOSCanIdMaskSet(FFreeRTOSCan *os_can_p, int frame_type)
+{
+ FError ret = FCAN_SUCCESS;
+ FCanIdMaskConfig id_mask;
+ memset(&id_mask, 0, sizeof(id_mask));
+ for (int i = 0; i < FCAN_ACC_ID_REG_NUM; i++)
+ {
+ id_mask.filter_index = i;
+ id_mask.id = 0;
+ id_mask.mask = FCAN_ACC_IDN_MASK;
+ if ( frame_type == 1 )
+ {
+ id_mask.type = EXTEND_FRAME;
+ }
+
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_ID_MASK_SET, &id_mask);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ID_MASK_SET %d failed.", i);
+ return ret;
+ }
+ }
+
+ return ret;
+}
+
+static void FFreeRTOSCanInitTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ BaseType_t xReturn = pdPASS;
+ u32 instance_id = FCAN0_ID;
+ u32 tran_mode = FCAN_PROBE_NORMAL_MODE;
+
+ /* The queue is created to hold a maximum of 32 structures of type xData. */
+ xQueue = xQueueCreate(32, sizeof(FCanQueueData));
+ if (xQueue == NULL)
+ {
+ printf("FFreeRTOSCreateCanfdIntrTestTask FCanQueueData create failed.\r\n");
+ }
+
+ /*init iomux*/
+ FIOMuxInit();
+
+ for (instance_id = FCAN0_ID; instance_id < FCAN_NUM; instance_id++)
+ {
+ FIOPadSetCanMux(instance_id);
+
+ /* init canfd controller */
+ os_can_ctrl_p[instance_id] = FFreeRTOSCanInit(instance_id);
+ if (os_can_ctrl_p[instance_id] == NULL)
+ {
+ printf("FFreeRTOSCanInit %d failed!!!\r\n", instance_id);
+ goto canfd_init_exit;
+ }
+
+ /* enable canfd */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_FD_ENABLE, (void *)1);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_FD_ENABLE failed.");
+ goto canfd_init_exit;
+ }
+
+ /* set canfd baudrate */
+ ret = FFreeRTOSCanBaudrateSet(os_can_ctrl_p[instance_id]);
+ if (FCAN_SUCCESS != ret)
+ {
+ printf("FFreeRTOSCanInit FFreeRTOSCanBaudrateSet failed!!!\r\n");
+ goto canfd_init_exit;
+ }
+
+ /* set canfd id mask */
+ ret = FFreeRTOSCanIdMaskSet(os_can_ctrl_p[instance_id], ((int)(uintptr)pvParameters));
+ if (FCAN_SUCCESS != ret)
+ {
+ printf("FFreeRTOSCanInit FFreeRTOSCanIdMaskSet failed!!!\r\n");
+ goto canfd_init_exit;
+ }
+
+ /* Identifier mask enable */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_ID_MASK_ENABLE, NULL);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ID_MASK_ENABLE failed.");
+ goto canfd_init_exit;
+ }
+
+ /* init canfd interrupt handler */
+ ret = FFreeRTOSCanIntrSet(os_can_ctrl_p[instance_id]);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanInit FFreeRTOSCanIntrSet failed!!!");
+ goto canfd_init_exit;
+ }
+
+ /* set canfd transfer mode */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_MODE_SET, &tran_mode);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_MODE_SET failed.");
+ goto canfd_init_exit;
+ }
+
+ /* enable canfd transfer */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_ENABLE, NULL);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ENABLE failed.");
+ goto canfd_init_exit;
+ }
+
+ }
+
+ printf("FFreeRTOSCanInitTask execute success !!!\r\n");
+
+ if ( ((int)(uintptr)pvParameters) == 0 )
+ {
+ printf("Standard frame test example!!!\r\n");
+ }
+ else if ( ((int)(uintptr)pvParameters) == 1 )
+ {
+ printf("Extended frame test example!!!\r\n");
+ }
+
+ /* canfd send task */
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanfdSendTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanfdSendTask",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ pvParameters,/* 任务入口函数参数 */
+ (UBaseType_t)configMAX_PRIORITIES - 5, /* 任务的优先级 */
+ (TaskHandle_t *)&send_handle); /* 任务控制 */
+ if (xReturn != pdPASS)
+ {
+ printf("Create FFreeRTOSCanfdSendTask failed.\r\n");
+ goto canfd_init_exit;
+ }
+
+ /* canfd recv task */
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanfdRecvTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanfdRecvTask",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ NULL,/* 任务入口函数参数 */
+ (UBaseType_t)configMAX_PRIORITIES - 5, /* 任务的优先级 */
+ (TaskHandle_t *)&recv_handle); /* 任务控制 */
+ if (xReturn != pdPASS)
+ {
+ printf("Create FFreeRTOSCanfdRecvTask failed.\r\n");
+ goto canfd_init_exit;
+ }
+
+canfd_init_exit:
+ vTaskDelete(NULL);
+}
+
+static void FFreeRTOSCanfdSendTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ u32 instance_id = FCAN0_ID;
+ u32 count[FCAN_NUM] = {0};
+ u32 send_max_id;
+ int i = 0;
+ /* As per most tasks, this task is implemented in an infinite loop. */
+ for (;;)
+ {
+ printf("\r\ncanfd send task running.\r\n");
+ for (instance_id = FCAN0_ID; instance_id <= FCAN1_ID; instance_id++)
+ {
+ send_frame[instance_id].candlc = FCAN_SEND_LENGTH; //DLC
+ if (((int)(uintptr)pvParameters) == 1)
+ {
+ send_frame[instance_id].canid = FCAN_SEND_EXID + count[instance_id]; //EXID //IDE
+ send_frame[instance_id].canid |= CAN_EFF_FLAG;
+ send_max_id = CAN_EFF_MASK | CAN_EFF_FLAG;
+ }
+ else
+ {
+ send_frame[instance_id].canid = FCAN_SEND_STID + count[instance_id]; //STID
+ send_frame[instance_id].canid &= CAN_SFF_MASK;
+ send_max_id = CAN_SFF_MASK;
+ }
+
+ for (i = 0; i < send_frame[instance_id].candlc; i++)
+ {
+ send_frame[instance_id].data[i] = i + (instance_id << 4);
+ }
+ ret = FFreeRTOSCanSend(os_can_ctrl_p[instance_id], &send_frame[instance_id]);
+ if (ret != FCAN_SUCCESS)
+ {
+ printf("canfd%d send failed.\n", instance_id);
+ }
+ count[instance_id]++;
+ vTaskDelay(CAN_SEND_PERIOD);
+ }
+ if ( (send_frame[instance_id - 1].canid == send_max_id) )
+ {
+ vTaskDelete(NULL);
+ }
+ }
+}
+
+static void FFreeRTOSCanfdRecvTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ u32 count[FCAN_NUM] = {0};
+ int i = 0;
+ static FCanQueueData xReceiveStructure;
+ FFreeRTOSCan *os_can_p;
+ u32 instance_id = FCAN0_ID;
+ /* As per most tasks, this task is implemented in an infinite loop. */
+ for (;;)
+ {
+ /* wait recv interrupt give semphore */
+ xQueueReceive(xQueue, &xReceiveStructure, portMAX_DELAY);
+ os_can_p = xReceiveStructure.os_can_p;
+ instance_id = os_can_p->can_ctrl.config.instance_id;
+ ret = FFreeRTOSCanRecv(os_can_p, &recv_frame[instance_id]);
+ if (FCAN_SUCCESS == ret)
+ {
+ printf("\r\ncanfd%d recv id is 0x%02x.\r\n", instance_id, recv_frame[instance_id].canid);
+ printf("canfd%d recv dlc is %d.\r\n", instance_id, recv_frame[instance_id].candlc);
+ printf("canfd%d recv data is ", instance_id);
+ for (i = 0; i < recv_frame[instance_id].candlc; i++)
+ {
+ printf("0x%02x ", recv_frame[instance_id].data[i]);
+ if (recv_frame[instance_id].data[i] != send_frame[FCAN1_ID - instance_id].data[i])
+ {
+ FCAN_TEST_ERROR("\ncount%d = %d: canfd%d recv is not equal to canfd%d send!!!\r\n", instance_id, count[instance_id], instance_id, FCAN1_ID - instance_id);
+ }
+ }
+ printf("\ncount%d = %d: canfd%d recv is equal to canfd%d send!!!\r\n", instance_id, count[instance_id], instance_id, FCAN1_ID - instance_id);
+ count[instance_id]++;
+ }
+ if ((instance_id == 0)
+ && ((recv_frame[instance_id].canid == (FCAN_SEND_EXID_MAX | CAN_EFF_FLAG))
+ || (recv_frame[instance_id].canid == FCAN_SEND_STID_MAX)))
+ {
+ FFreeRTOSCanDelete();
+ }
+ }
+}
+
+/* create canfd intr test, can0 and can1 loopback */
+BaseType_t FFreeRTOSCreateCanfdIntrTestTask(void)
+{
+ BaseType_t xReturn = pdPASS;
+ BaseType_t timer_started = pdPASS;
+
+ test_semaphore = xSemaphoreCreateBinary();
+ if (test_semaphore != NULL)
+ {
+ xSemaphoreGive(test_semaphore);
+ }
+
+ /* canfd intr example standard frame task */
+ xSemaphoreTake(test_semaphore, portMAX_DELAY);
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanInitTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanInitTask",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ (void *)0,/* 任务入口函数参数 */
+ (UBaseType_t)1, /* 任务的优先级 */
+ NULL); /* 任务控制 */
+
+ /* canfd intr example extended frame task */
+ xSemaphoreTake(test_semaphore, portMAX_DELAY);
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanInitTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanInitTask2",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ (void *)1,/* 任务入口函数参数 */
+ (UBaseType_t)1, /* 任务的优先级 */
+ NULL); /* 任务控制 */
+
+ return xReturn;
+}
+
+static void FFreeRTOSCanDelete(void)
+{
+ /* deinit canfd os instance */
+ FFreeRTOSCanDeinit(os_can_ctrl_p[FCAN1_ID]);
+ FFreeRTOSCanDeinit(os_can_ctrl_p[FCAN0_ID]);
+
+ /*iopad deinit */
+ FIOMuxDeInit();
+
+ /* delete queue */
+ vQueueDelete(xQueue);
+
+ xSemaphoreGive(test_semaphore);
+
+ if (recv_handle)
+ {
+ vPrintf("\r\nDelete FFreeRTOSCanRecvTask success.\r\n");
+ vPrintf("\r\nDelete FFreeRTOSCanSendTask success.\r\n");
+ vTaskDelete(recv_handle);
+ }
+}
\ No newline at end of file
diff --git a/example/peripheral/can/canfd/src/canfd_polled_loopback_mode_example.c b/example/peripheral/can/canfd/src/canfd_polled_loopback_mode_example.c
new file mode 100644
index 0000000000000000000000000000000000000000..4ee435c8ceeff094a8c32c1f389efd8265cca693
--- /dev/null
+++ b/example/peripheral/can/canfd/src/canfd_polled_loopback_mode_example.c
@@ -0,0 +1,392 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: canfd_polled_loopback_mode_example.c
+ * Date: 2023-10-11 11:13:48
+ * LastEditTime: 2023-10-20 11:13:48
+ * Description: This file is for CANFD task implementations
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2023/10/7 first commit
+ */
+#include
+#include
+#include "FreeRTOSConfig.h"
+#include "FreeRTOS.h"
+#include "task.h"
+#include "timers.h"
+#include "fcan.h"
+#include "fcan_os.h"
+#include "fcpu_info.h"
+#include "fio_mux.h"
+#include "fassert.h"
+#include "fdebug.h"
+
+#define FCAN_TEST_DEBUG_TAG "FCANFD_FREERTOS_POLLED_TEST"
+#define FCAN_TEST_DEBUG(format, ...) FT_DEBUG_PRINT_D(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FCAN_TEST_INFO(format, ...) FT_DEBUG_PRINT_I(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FCAN_TEST_WARN(format, ...) FT_DEBUG_PRINT_W(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+#define FCAN_TEST_ERROR(format, ...) FT_DEBUG_PRINT_E(FCAN_TEST_DEBUG_TAG, format, ##__VA_ARGS__)
+
+/* canfd frame config */
+#define FCAN_SEND_STID 0x000007FDU
+#define FCAN_SEND_EXID 0x1FFFFFFDU
+#define FCAN_SEND_LENGTH 16
+#define FCAN_SEND_STID_MAX 0x000007FFU
+#define FCAN_SEND_EXID_MAX 0x1FFFFFFFU
+
+/* canfd send period */
+#define CAN_SEND_PERIOD ( pdMS_TO_TICKS( 100UL ))
+
+/* canfd baudrate */
+#define ARB_BAUD_RATE 1000000
+#define DATA_BAUD_RATE 2000000
+
+/* Declare a variable of type QueueHandle_t. This is used to store the queue that is accessed by all three tasks. */
+static QueueHandle_t xQueue;
+
+static xSemaphoreHandle test_semaphore;
+
+static xTaskHandle send_handle;
+static xTaskHandle recv_handle;
+
+static FFreeRTOSCan *os_can_ctrl_p[FCAN_NUM];
+
+static FCanFrame send_frame[FCAN_NUM];
+static FCanFrame recv_frame[FCAN_NUM];
+
+static void FFreeRTOSCanfdSendTask(void *pvParameters);
+static void FFreeRTOSCanfdRecvTask(void *pvParameters);
+static void FFreeRTOSCanDelete(void);
+
+
+static FError FFreeRTOSCanBaudrateSet(FFreeRTOSCan *os_can_p)
+{
+ FError ret = FCAN_SUCCESS;
+
+ FCanBaudrateConfig arb_segment_config;
+ FCanBaudrateConfig data_segment_config;
+ memset(&arb_segment_config, 0, sizeof(arb_segment_config));
+ memset(&data_segment_config, 0, sizeof(data_segment_config));
+ arb_segment_config.baudrate = ARB_BAUD_RATE;
+ arb_segment_config.auto_calc = TRUE;
+ arb_segment_config.segment = FCAN_ARB_SEGMENT;
+
+ data_segment_config.baudrate = DATA_BAUD_RATE;
+ data_segment_config.auto_calc = TRUE;
+ data_segment_config.segment = FCAN_DATA_SEGMENT;
+
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_BAUDRATE_SET, &arb_segment_config);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl arb_segment_config failed.");
+ return ret;
+ }
+
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_BAUDRATE_SET, &data_segment_config);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl data_segment_config failed.");
+ return ret;
+ }
+ return ret;
+}
+
+
+static FError FFreeRTOSCanIdMaskSet(FFreeRTOSCan *os_can_p, int frame_type)
+{
+ FError ret = FCAN_SUCCESS;
+ FCanIdMaskConfig id_mask;
+ memset(&id_mask, 0, sizeof(id_mask));
+ for (int i = 0; i < FCAN_ACC_ID_REG_NUM; i++)
+ {
+ id_mask.filter_index = i;
+ id_mask.id = 0;
+ id_mask.mask = FCAN_ACC_IDN_MASK;
+ if ( frame_type == 1 )
+ {
+ id_mask.type = EXTEND_FRAME;
+ }
+
+ ret = FFreeRTOSCanControl(os_can_p, FREERTOS_CAN_CTRL_ID_MASK_SET, &id_mask);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ID_MASK_SET %d failed.", i);
+ return ret;
+ }
+ }
+
+ return ret;
+}
+
+static void FFreeRTOSCanfdInitTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ BaseType_t xReturn = pdPASS;
+ u32 instance_id = FCAN0_ID;
+ u32 tran_mode = FCAN_PROBE_NORMAL_MODE;
+ boolean use_canfd = TRUE;
+
+ /* The queue is created to hold a maximum of 32 structures of type u32 instance_id . */
+ xQueue = xQueueCreate(32, sizeof(u32));
+ if (xQueue == NULL)
+ {
+ printf("FFreeRTOSCreateCanPolledTestTask FCanQueueData create failed.\r\n");
+ }
+
+ /*init iomux*/
+ FIOMuxInit();
+
+ for (instance_id = FCAN0_ID; instance_id < FCAN_NUM; instance_id++)
+ {
+ FIOPadSetCanMux(instance_id);
+
+ /* init canfd controller */
+ os_can_ctrl_p[instance_id] = FFreeRTOSCanInit(instance_id);
+ if (os_can_ctrl_p[instance_id] == NULL)
+ {
+ printf("FFreeRTOSCanInit %d failed!!!\r\n", instance_id);
+ goto canfd_init_exit;
+ }
+
+ /* enable canfd */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_FD_ENABLE, (void *)use_canfd);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_FD_ENABLE failed.");
+ goto canfd_init_exit;
+ }
+
+ /* set canfd baudrate */
+ ret = FFreeRTOSCanBaudrateSet(os_can_ctrl_p[instance_id]);
+ if (FCAN_SUCCESS != ret)
+ {
+ printf("FFreeRTOSCanInit FFreeRTOSCanBaudrateSet failed!!!\r\n");
+ goto canfd_init_exit;
+ }
+
+ /* set canfd id mask */
+ ret = FFreeRTOSCanIdMaskSet(os_can_ctrl_p[instance_id], ((int)(uintptr)pvParameters));
+ if (FCAN_SUCCESS != ret)
+ {
+ printf("FFreeRTOSCanInit FFreeRTOSCanIdMaskSet failed!!!\r\n");
+ goto canfd_init_exit;
+ }
+
+ /* Identifier mask enable */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_ID_MASK_ENABLE, NULL);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ID_MASK_ENABLE failed.");
+ goto canfd_init_exit;
+ }
+
+ /* set canfd transfer mode */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_MODE_SET, &tran_mode);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_MODE_SET failed.");
+ goto canfd_init_exit;
+ }
+
+ /* enable can transfer */
+ ret = FFreeRTOSCanControl(os_can_ctrl_p[instance_id], FREERTOS_CAN_CTRL_ENABLE, NULL);
+ if (FCAN_SUCCESS != ret)
+ {
+ FCAN_TEST_ERROR("FFreeRTOSCanControl FREERTOS_CAN_CTRL_ENABLE failed.");
+ goto canfd_init_exit;
+ }
+ }
+
+ printf("FFreeRTOSCanfdInitTask execute success !!!\r\n");
+
+ if ( ((int)(uintptr)pvParameters) == 0 )
+ {
+ printf("Standard frame test example!!!\r\n");
+ }
+ else if ( ((int)(uintptr)pvParameters) == 1 )
+ {
+ printf("Extended frame test example!!!\r\n");
+ }
+
+ /* canfd send task */
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanfdSendTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanfdSendTask",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ pvParameters,/* 任务入口函数参数 */
+ (UBaseType_t)configMAX_PRIORITIES - 5, /* 任务的优先级 */
+ (TaskHandle_t *)&send_handle); /* 任务控制 */
+ if (xReturn != pdPASS)
+ {
+ printf("Create FFreeRTOSCanfdSendTask failed.\r\n");
+ goto canfd_init_exit;
+ }
+
+ /* canfd recv task */
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanfdRecvTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanfdRecvTask",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ NULL,/* 任务入口函数参数 */
+ (UBaseType_t)configMAX_PRIORITIES - 5, /* 任务的优先级 */
+ (TaskHandle_t *)&recv_handle); /* 任务控制 */
+ if (xReturn != pdPASS)
+ {
+ printf("Create FFreeRTOSCanfdRecvTask failed.\r\n");
+ goto canfd_init_exit;
+ }
+
+canfd_init_exit:
+ vTaskDelete(NULL);
+}
+
+static void FFreeRTOSCanfdSendTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ u32 instance_id = FCAN0_ID;
+ u32 count[FCAN_NUM] = {0};
+ u32 send_max_id;
+ int i = 0;
+ /* As per most tasks, this task is implemented in an infinite loop. */
+ for (;;)
+ {
+ printf("\r\ncanfd send task running.\r\n");
+ for (instance_id = FCAN0_ID; instance_id <= FCAN1_ID; instance_id++)
+ {
+ send_frame[instance_id].candlc = FCAN_SEND_LENGTH; //DLC
+ if (((int)(uintptr)pvParameters) == 1)
+ {
+ send_frame[instance_id].canid = FCAN_SEND_EXID + count[instance_id]; //EXID //IDE
+ send_frame[instance_id].canid |= CAN_EFF_FLAG;
+ send_max_id = CAN_EFF_MASK | CAN_EFF_FLAG;
+ }
+ else
+ {
+ send_frame[instance_id].canid = FCAN_SEND_STID + count[instance_id]; //STID
+ send_frame[instance_id].canid &= CAN_SFF_MASK;
+ send_max_id = CAN_SFF_MASK;
+ }
+
+ for (i = 0; i < send_frame[instance_id].candlc; i++)
+ {
+ send_frame[instance_id].data[i] = i + (instance_id << 4);
+ }
+ ret = FFreeRTOSCanSend(os_can_ctrl_p[instance_id], &send_frame[instance_id]);
+ if (ret != FCAN_SUCCESS)
+ {
+ printf("canfd%d send failed.\n", instance_id);
+ }
+ count[instance_id]++;
+ xQueueSendToBack(xQueue, &instance_id, portMAX_DELAY);
+ vTaskDelay(CAN_SEND_PERIOD);
+ }
+ if ( (send_frame[instance_id - 1].canid == send_max_id) )
+ {
+ vTaskDelete(NULL);
+ }
+ }
+}
+
+static void FFreeRTOSCanfdRecvTask(void *pvParameters)
+{
+ FError ret = FCAN_SUCCESS;
+ u32 count[FCAN_NUM] = {0};
+ int i = 0;
+ u32 instance_id = FCAN1_ID;
+ /* As per most tasks, this task is implemented in an infinite loop. */
+ for (;;)
+ {
+ /* wait canfd send give semphore */
+ xQueueReceive(xQueue, &instance_id, portMAX_DELAY);
+ instance_id = FCAN1_ID - instance_id;
+ ret = FFreeRTOSCanRecv(os_can_ctrl_p[instance_id], &recv_frame[instance_id]);
+ if (FCAN_SUCCESS == ret)
+ {
+ printf("\r\ncanfd%d recv id is 0x%02x.\r\n", instance_id, recv_frame[instance_id].canid);
+ printf("canfd%d recv dlc is %d.\r\n", instance_id, recv_frame[instance_id].candlc);
+ printf("canfd%d recv data is ", instance_id);
+ for (i = 0; i < recv_frame[instance_id].candlc; i++)
+ {
+ printf("0x%02x ", recv_frame[instance_id].data[i]);
+ if (recv_frame[instance_id].data[i] != send_frame[FCAN1_ID - instance_id].data[i])
+ {
+ FCAN_TEST_ERROR("\ncount%d = %d: canfd%d recv is not equal to canfd%d send!!!\r\n", instance_id, count[instance_id], instance_id, FCAN1_ID - instance_id);
+ }
+ }
+ printf("\ncount%d = %d: canfd%d recv is equal to canfd%d send!!!\r\n", instance_id, count[instance_id], instance_id, FCAN1_ID - instance_id);
+ count[instance_id]++;
+ }
+ if ((instance_id == 0)
+ && ((recv_frame[instance_id].canid == (FCAN_SEND_EXID_MAX | CAN_EFF_FLAG))
+ || (recv_frame[instance_id].canid == FCAN_SEND_STID_MAX)))
+ {
+ FFreeRTOSCanDelete();
+ }
+ }
+}
+
+/* create canfd polled test, can0 and can1 loopback */
+BaseType_t FFreeRTOSCreateCanfdPolledTestTask(void)
+{
+ BaseType_t xReturn = pdPASS;
+ BaseType_t timer_started = pdPASS;
+
+ test_semaphore = xSemaphoreCreateBinary();
+ if (test_semaphore != NULL)
+ {
+ xSemaphoreGive(test_semaphore);
+ }
+
+ /* canfd polled example standard frame task */
+ xSemaphoreTake(test_semaphore, portMAX_DELAY);
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanfdInitTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanfdInitTask",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ (void *)0,/* 任务入口函数参数 */
+ (UBaseType_t)1, /* 任务的优先级 */
+ NULL); /* 任务控制 */
+
+ /* canfd polled example extended frame task */
+ xSemaphoreTake(test_semaphore, portMAX_DELAY);
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSCanfdInitTask, /* 任务入口函数 */
+ (const char *)"FFreeRTOSCanfdInitTask2",/* 任务名字 */
+ (uint16_t)1024, /* 任务栈大小 */
+ (void *)1,/* 任务入口函数参数 */
+ (UBaseType_t)1, /* 任务的优先级 */
+ NULL); /* 任务控制 */
+
+ return xReturn;
+}
+
+static void FFreeRTOSCanDelete(void)
+{
+ /* deinit canfd os instance */
+ FFreeRTOSCanDeinit(os_can_ctrl_p[FCAN1_ID]);
+ FFreeRTOSCanDeinit(os_can_ctrl_p[FCAN0_ID]);
+
+ /*iopad deinit */
+ FIOMuxDeInit();
+
+ /* delete queue */
+ vQueueDelete(xQueue);
+
+ xSemaphoreGive(test_semaphore);
+
+ if (recv_handle)
+ {
+ vPrintf("\r\nDelete FFreeRTOSCanRecvTask success.\r\n");
+ vPrintf("\r\nDelete FFreeRTOSCanSendTask success.\r\n");
+ vTaskDelete(recv_handle);
+ }
+}
\ No newline at end of file
diff --git a/example/peripheral/can/canfd/src/cmd_canfd.c b/example/peripheral/can/canfd/src/cmd_canfd.c
new file mode 100644
index 0000000000000000000000000000000000000000..f3b89860f57f6ddbbc6974b3cf99de6f05e7fff9
--- /dev/null
+++ b/example/peripheral/can/canfd/src/cmd_canfd.c
@@ -0,0 +1,72 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: cmd_canfd.c
+ * Date: 2023-10-20 10:41:45
+ * LastEditTime: 2023-10-20 12:41:45
+ * Description: This file is for canfd example command interface
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 huangjin 2023/10/20 first commit
+ */
+#include "shell.h"
+#include "canfd_intr_loopback_mode_example.h"
+#include "canfd_polled_loopback_mode_example copy.h"
+#include "canfd_id_filter_example.h"
+#include
+#include
+
+static void CreateTasksCmdUsage(void)
+{
+ printf("Usage:\r\n");
+ printf(" canfd intr \r\n");
+ printf(" -- Create canfd interrupt test example now. \r\n");
+ printf(" canfd polled \r\n");
+ printf(" -- Create canfd polled test example now. \r\n");
+ printf(" canfd filter \r\n");
+ printf(" -- Create canfd filter test example now. \r\n");
+}
+
+int CreateTasksCmd(int argc, char *argv[])
+{
+ if (argc < 2)
+ {
+ CreateTasksCmdUsage();
+ return -1;
+ }
+ else if (!strcmp(argv[1], "intr"))
+ {
+ FFreeRTOSCreateCanfdIntrTestTask();
+ }
+ else if (!strcmp(argv[1], "polled"))
+ {
+ FFreeRTOSCreateCanfdPolledTestTask();
+ }
+ else if (!strcmp(argv[1], "filter"))
+ {
+ FFreeRTOSCanfdCreateFilterTestTask();
+ }
+ else
+ {
+ printf("Error: Invalid arguments. \r\n");
+ CreateTasksCmdUsage();
+ }
+
+ return 0;
+}
+
+SHELL_EXPORT_CMD(SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), canfd, CreateTasksCmd, canfd creating test);
+
+
diff --git a/example/peripheral/can/figs/create.png b/example/peripheral/can/figs/create.png
deleted file mode 100644
index c362376d9017652502d1c5a85ed920a51a0b6feb..0000000000000000000000000000000000000000
Binary files a/example/peripheral/can/figs/create.png and /dev/null differ
diff --git a/example/peripheral/can/figs/delete.png b/example/peripheral/can/figs/delete.png
deleted file mode 100644
index 6e11d764447ed3a46055392f374e328dd0314ced..0000000000000000000000000000000000000000
Binary files a/example/peripheral/can/figs/delete.png and /dev/null differ
diff --git a/example/peripheral/dma/ddma/configs/e2000d_aarch32_demo_ddma.config b/example/peripheral/dma/ddma/configs/e2000d_aarch32_demo_ddma.config
index b18c907cb7e1bce0bf428877e84fe6da1ae75080..11ee2b78690691111ca1c7f058bebc4fa43eeb9e 100644
--- a/example/peripheral/dma/ddma/configs/e2000d_aarch32_demo_ddma.config
+++ b/example/peripheral/dma/ddma/configs/e2000d_aarch32_demo_ddma.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -125,8 +127,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -156,6 +156,7 @@ CONFIG_ENABLE_FDDMA=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -195,7 +196,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -324,7 +326,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -335,10 +336,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -358,4 +361,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/dma/ddma/configs/e2000d_aarch64_demo_ddma.config b/example/peripheral/dma/ddma/configs/e2000d_aarch64_demo_ddma.config
index 9aa7c48fdeea8998173791987493c45562232026..754358ca100620b7e14044d8aa7cbccb380b8ccd 100644
--- a/example/peripheral/dma/ddma/configs/e2000d_aarch64_demo_ddma.config
+++ b/example/peripheral/dma/ddma/configs/e2000d_aarch64_demo_ddma.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -127,8 +121,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -158,6 +150,7 @@ CONFIG_ENABLE_FDDMA=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -197,7 +190,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -322,7 +316,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -333,10 +326,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -356,4 +351,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/dma/ddma/configs/e2000q_aarch32_demo_ddma.config b/example/peripheral/dma/ddma/configs/e2000q_aarch32_demo_ddma.config
index 37babab61f069f56ed27cf0cad576703848ea1b9..7570b1c07182d1e1fef272672682d59608624bb8 100644
--- a/example/peripheral/dma/ddma/configs/e2000q_aarch32_demo_ddma.config
+++ b/example/peripheral/dma/ddma/configs/e2000q_aarch32_demo_ddma.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +155,7 @@ CONFIG_ENABLE_FDDMA=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +195,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -323,7 +325,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -334,10 +335,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -357,4 +360,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/dma/ddma/configs/e2000q_aarch64_demo_ddma.config b/example/peripheral/dma/ddma/configs/e2000q_aarch64_demo_ddma.config
index 9c850a49e4ca18e717daae6eeb8a46e37af7b60e..8e4763572474afedb4498465e434760ec2893612 100644
--- a/example/peripheral/dma/ddma/configs/e2000q_aarch64_demo_ddma.config
+++ b/example/peripheral/dma/ddma/configs/e2000q_aarch64_demo_ddma.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -157,6 +149,7 @@ CONFIG_ENABLE_FDDMA=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -196,7 +189,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,7 +315,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -332,10 +325,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -355,4 +350,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/dma/ddma/configs/phytiumpi_aarch32_firefly_ddma.config b/example/peripheral/dma/ddma/configs/phytiumpi_aarch32_firefly_ddma.config
index 29f06198d48c38531a3a9aced50b0138abdb5087..c4deace6c6eea7150403a4224ce26ba9178e1ed6 100644
--- a/example/peripheral/dma/ddma/configs/phytiumpi_aarch32_firefly_ddma.config
+++ b/example/peripheral/dma/ddma/configs/phytiumpi_aarch32_firefly_ddma.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +125,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +154,7 @@ CONFIG_ENABLE_FDDMA=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +194,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -322,7 +324,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -333,10 +334,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -356,4 +359,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/dma/ddma/configs/phytiumpi_aarch64_firefly_ddma.config b/example/peripheral/dma/ddma/configs/phytiumpi_aarch64_firefly_ddma.config
index df4657522b95fecf184a1c587dc0746a8c7dfb6a..708e5b4285042856a3057956745385d9bab19602 100644
--- a/example/peripheral/dma/ddma/configs/phytiumpi_aarch64_firefly_ddma.config
+++ b/example/peripheral/dma/ddma/configs/phytiumpi_aarch64_firefly_ddma.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -156,6 +148,7 @@ CONFIG_ENABLE_FDDMA=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -195,7 +188,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +314,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -331,10 +324,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -354,4 +349,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/dma/ddma/sdkconfig b/example/peripheral/dma/ddma/sdkconfig
index df4657522b95fecf184a1c587dc0746a8c7dfb6a..708e5b4285042856a3057956745385d9bab19602 100644
--- a/example/peripheral/dma/ddma/sdkconfig
+++ b/example/peripheral/dma/ddma/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -156,6 +148,7 @@ CONFIG_ENABLE_FDDMA=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -195,7 +188,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +314,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -331,10 +324,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -354,4 +349,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/dma/ddma/sdkconfig.h b/example/peripheral/dma/ddma/sdkconfig.h
index 23c642dc6df025960a2865df07aefa64eec71ec0..06428212d019e6edf375f0dfd660a800737c7110 100644
--- a/example/peripheral/dma/ddma/sdkconfig.h
+++ b/example/peripheral/dma/ddma/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -114,8 +110,6 @@
#define CONFIG_USE_SPI
#define CONFIG_USE_FSPIM
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -143,6 +137,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -178,7 +173,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -282,7 +278,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -293,9 +288,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -315,6 +312,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/peripheral/dma/gdma/configs/e2000d_aarch32_demo_gdma.config b/example/peripheral/dma/gdma/configs/e2000d_aarch32_demo_gdma.config
index b92f683e2955df68b5f2d4828945eb472f6214e9..4c1df73cb17f0cc533fe7b1cf20292497f7cca6f 100644
--- a/example/peripheral/dma/gdma/configs/e2000d_aarch32_demo_gdma.config
+++ b/example/peripheral/dma/gdma/configs/e2000d_aarch32_demo_gdma.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +155,7 @@ CONFIG_ENABLE_FGDMA=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +195,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -323,7 +325,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -334,10 +335,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -357,4 +360,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/dma/gdma/configs/e2000d_aarch64_demo_gdma.config b/example/peripheral/dma/gdma/configs/e2000d_aarch64_demo_gdma.config
index 5917a40dc118706f97575078da71439c3b6fbd7c..f494d233d6ab9534ef5518fd068dcda95489a1fa 100644
--- a/example/peripheral/dma/gdma/configs/e2000d_aarch64_demo_gdma.config
+++ b/example/peripheral/dma/gdma/configs/e2000d_aarch64_demo_gdma.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -157,6 +149,7 @@ CONFIG_ENABLE_FGDMA=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -196,7 +189,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,7 +315,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -332,10 +325,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -355,4 +350,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/dma/gdma/configs/e2000q_aarch32_demo_gdma.config b/example/peripheral/dma/gdma/configs/e2000q_aarch32_demo_gdma.config
index a5909bc2dabbefa4d739e0837c1bff18205a8a06..7065a3e91be691a41c620f4cd12b6418a6b9704f 100644
--- a/example/peripheral/dma/gdma/configs/e2000q_aarch32_demo_gdma.config
+++ b/example/peripheral/dma/gdma/configs/e2000q_aarch32_demo_gdma.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +154,7 @@ CONFIG_ENABLE_FGDMA=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +194,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -322,7 +324,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -333,10 +334,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -356,4 +359,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/dma/gdma/configs/e2000q_aarch64_demo_gdma.config b/example/peripheral/dma/gdma/configs/e2000q_aarch64_demo_gdma.config
index e7ed0b4a3ccee02cdb302dfdae3f5a3f5cfc48f1..33bc69a9ceb2441e540c1149e231aa4ea0d347b3 100644
--- a/example/peripheral/dma/gdma/configs/e2000q_aarch64_demo_gdma.config
+++ b/example/peripheral/dma/gdma/configs/e2000q_aarch64_demo_gdma.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -156,6 +148,7 @@ CONFIG_ENABLE_FGDMA=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -195,7 +188,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +314,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -331,10 +324,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -354,4 +349,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/dma/gdma/configs/phytiumpi_aarch32_firefly_gdma.config b/example/peripheral/dma/gdma/configs/phytiumpi_aarch32_firefly_gdma.config
index f932ba7132e9f4b1aad06906fd29841053409f40..579df561cdde6e26659fe6ffb98ffe2ca53e59b8 100644
--- a/example/peripheral/dma/gdma/configs/phytiumpi_aarch32_firefly_gdma.config
+++ b/example/peripheral/dma/gdma/configs/phytiumpi_aarch32_firefly_gdma.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +153,7 @@ CONFIG_ENABLE_FGDMA=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,7 +323,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -332,10 +333,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -355,4 +358,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/dma/gdma/configs/phytiumpi_aarch64_firefly_gdma.config b/example/peripheral/dma/gdma/configs/phytiumpi_aarch64_firefly_gdma.config
index 9c110a506c707fe136b5ef953a5359228b213110..008948970d9d5cf2116287789a11f51b8387bce1 100644
--- a/example/peripheral/dma/gdma/configs/phytiumpi_aarch64_firefly_gdma.config
+++ b/example/peripheral/dma/gdma/configs/phytiumpi_aarch64_firefly_gdma.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +147,7 @@ CONFIG_ENABLE_FGDMA=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +323,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +348,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/dma/gdma/sdkconfig b/example/peripheral/dma/gdma/sdkconfig
index 9c110a506c707fe136b5ef953a5359228b213110..008948970d9d5cf2116287789a11f51b8387bce1 100644
--- a/example/peripheral/dma/gdma/sdkconfig
+++ b/example/peripheral/dma/gdma/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +147,7 @@ CONFIG_ENABLE_FGDMA=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +323,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +348,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/dma/gdma/sdkconfig.h b/example/peripheral/dma/gdma/sdkconfig.h
index 6c02ea01c5a7e922eaeb54bc2a81bbf2b0397540..e721d893b04857c90ae19b9214a2227784520d78 100644
--- a/example/peripheral/dma/gdma/sdkconfig.h
+++ b/example/peripheral/dma/gdma/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -113,8 +109,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -142,6 +136,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -177,7 +172,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -281,7 +277,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -292,9 +287,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -314,6 +311,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/peripheral/gpio/configs/e2000d_aarch32_demo_gpio.config b/example/peripheral/gpio/configs/e2000d_aarch32_demo_gpio.config
index d13d9eef7cc24f46c7118f445318f1839eca3523..7e535d7af9db75863b7c9e1b9cbb8807720ec5e4 100644
--- a/example/peripheral/gpio/configs/e2000d_aarch32_demo_gpio.config
+++ b/example/peripheral/gpio/configs/e2000d_aarch32_demo_gpio.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +154,7 @@ CONFIG_ENABLE_FGPIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +194,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -322,7 +324,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -333,10 +334,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -356,4 +359,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/gpio/configs/e2000d_aarch64_demo_gpio.config b/example/peripheral/gpio/configs/e2000d_aarch64_demo_gpio.config
index fe38675758fd81653d956601f34f70aec7325ef3..b3cf6145763a4a6d20641d9040ddc2d95e7e5122 100644
--- a/example/peripheral/gpio/configs/e2000d_aarch64_demo_gpio.config
+++ b/example/peripheral/gpio/configs/e2000d_aarch64_demo_gpio.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -156,6 +148,7 @@ CONFIG_ENABLE_FGPIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -195,7 +188,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +314,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -331,10 +324,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -354,4 +349,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/gpio/configs/e2000q_aarch32_demo_gpio.config b/example/peripheral/gpio/configs/e2000q_aarch32_demo_gpio.config
index 2575711a50289751ed9cb9d93240fa7f749b688c..b61c5ae93490b3177691de2477f2e3640a61f05b 100644
--- a/example/peripheral/gpio/configs/e2000q_aarch32_demo_gpio.config
+++ b/example/peripheral/gpio/configs/e2000q_aarch32_demo_gpio.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +153,7 @@ CONFIG_ENABLE_FGPIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,7 +323,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -332,10 +333,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -355,4 +358,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/gpio/configs/e2000q_aarch64_demo_gpio.config b/example/peripheral/gpio/configs/e2000q_aarch64_demo_gpio.config
index 392fbdb3dd55ba94a01cb9975dce5fb16cf5b390..ab9ec6233b67779505c0a0fbe4df2bc3861db8e1 100644
--- a/example/peripheral/gpio/configs/e2000q_aarch64_demo_gpio.config
+++ b/example/peripheral/gpio/configs/e2000q_aarch64_demo_gpio.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +147,7 @@ CONFIG_ENABLE_FGPIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -330,10 +323,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -353,4 +348,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/gpio/configs/phytiumpi_aarch32_firefly_gpio.config b/example/peripheral/gpio/configs/phytiumpi_aarch32_firefly_gpio.config
index 6d13f14bf78d3db52ae7cbccce93a4ae8e5eb59b..93fe4c84a2ac9c7695ce52d9f1052a838461c350 100644
--- a/example/peripheral/gpio/configs/phytiumpi_aarch32_firefly_gpio.config
+++ b/example/peripheral/gpio/configs/phytiumpi_aarch32_firefly_gpio.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -152,6 +152,7 @@ CONFIG_ENABLE_FGPIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -191,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +322,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -331,10 +332,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -354,4 +357,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/gpio/configs/phytiumpi_aarch64_firefly_gpio.config b/example/peripheral/gpio/configs/phytiumpi_aarch64_firefly_gpio.config
index 459d8c238924e4b884d82ac95a7d45aca17fa310..08c6707b0097d903e79647486a13af823fe2a567 100644
--- a/example/peripheral/gpio/configs/phytiumpi_aarch64_firefly_gpio.config
+++ b/example/peripheral/gpio/configs/phytiumpi_aarch64_firefly_gpio.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +146,7 @@ CONFIG_ENABLE_FGPIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +186,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -318,7 +312,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -329,10 +322,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -352,4 +347,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/gpio/sdkconfig b/example/peripheral/gpio/sdkconfig
index 459d8c238924e4b884d82ac95a7d45aca17fa310..08c6707b0097d903e79647486a13af823fe2a567 100644
--- a/example/peripheral/gpio/sdkconfig
+++ b/example/peripheral/gpio/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +146,7 @@ CONFIG_ENABLE_FGPIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +186,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -318,7 +312,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -329,10 +322,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -352,4 +347,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/gpio/sdkconfig.h b/example/peripheral/gpio/sdkconfig.h
index 5076aa6410e531acdf07c572f9a253a4077811cf..8e7f4cd7864a5bae1e5980f71fad1cba5b8e6139 100644
--- a/example/peripheral/gpio/sdkconfig.h
+++ b/example/peripheral/gpio/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -113,8 +109,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -141,6 +135,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -176,7 +171,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -280,7 +276,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -291,9 +286,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -313,6 +310,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/peripheral/i2c/configs/e2000d_aarch32_demo_i2c.config b/example/peripheral/i2c/configs/e2000d_aarch32_demo_i2c.config
index 2740268b1a553f6b0c240aaeeddf742d2c40f849..147394c835f4e627fbd532d7dd6873667af15045 100644
--- a/example/peripheral/i2c/configs/e2000d_aarch32_demo_i2c.config
+++ b/example/peripheral/i2c/configs/e2000d_aarch32_demo_i2c.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +161,7 @@ CONFIG_ENABLE_MIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +201,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -329,7 +331,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -340,10 +341,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -363,4 +366,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/i2c/configs/e2000d_aarch64_demo_i2c.config b/example/peripheral/i2c/configs/e2000d_aarch64_demo_i2c.config
index 4060116502e71871b34a4c686ceedd3fdd0ec4f5..90b59015ee9c8052ced241c318b9bed5e25db162 100644
--- a/example/peripheral/i2c/configs/e2000d_aarch64_demo_i2c.config
+++ b/example/peripheral/i2c/configs/e2000d_aarch64_demo_i2c.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -163,6 +155,7 @@ CONFIG_ENABLE_MIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -202,7 +195,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +321,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +331,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +356,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/i2c/configs/e2000q_aarch32_demo_i2c.config b/example/peripheral/i2c/configs/e2000q_aarch32_demo_i2c.config
index 81cb27de1d128a26fd81dec9b30a8903e5a449ad..5a036b5e5f64093ec11f08c493a3807841b6916f 100644
--- a/example/peripheral/i2c/configs/e2000q_aarch32_demo_i2c.config
+++ b/example/peripheral/i2c/configs/e2000q_aarch32_demo_i2c.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +160,7 @@ CONFIG_ENABLE_MIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +200,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -328,7 +330,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -339,10 +340,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -362,4 +365,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/i2c/configs/e2000q_aarch64_demo_i2c.config b/example/peripheral/i2c/configs/e2000q_aarch64_demo_i2c.config
index 75e4b32c496ed7d6f78a41b214a5d52a33158cdc..9d3911475e3d66fde063b1257c6f978d34470dc7 100644
--- a/example/peripheral/i2c/configs/e2000q_aarch64_demo_i2c.config
+++ b/example/peripheral/i2c/configs/e2000q_aarch64_demo_i2c.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +154,7 @@ CONFIG_ENABLE_MIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +194,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +320,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +330,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +355,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/i2c/configs/phytiumpi_aarch32_firefly_i2c.config b/example/peripheral/i2c/configs/phytiumpi_aarch32_firefly_i2c.config
index 49b586c504419f90f204b119d93c1396fabb86c2..d06fd287e023e7ce4af5d7faf44bd36cfe7e50eb 100644
--- a/example/peripheral/i2c/configs/phytiumpi_aarch32_firefly_i2c.config
+++ b/example/peripheral/i2c/configs/phytiumpi_aarch32_firefly_i2c.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +159,7 @@ CONFIG_ENABLE_MIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +199,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +329,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +339,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +364,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/i2c/configs/phytiumpi_aarch64_firefly_i2c.config b/example/peripheral/i2c/configs/phytiumpi_aarch64_firefly_i2c.config
index b811a80553074dbe8a9bc8adcb087bd09ae1b416..f278ddba9f92899d26e1c605f5a3e7b94dc3a135 100644
--- a/example/peripheral/i2c/configs/phytiumpi_aarch64_firefly_i2c.config
+++ b/example/peripheral/i2c/configs/phytiumpi_aarch64_firefly_i2c.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +153,7 @@ CONFIG_ENABLE_MIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -325,7 +319,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -336,10 +329,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -359,4 +354,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/i2c/sdkconfig b/example/peripheral/i2c/sdkconfig
index 4060116502e71871b34a4c686ceedd3fdd0ec4f5..f278ddba9f92899d26e1c605f5a3e7b94dc3a135 100644
--- a/example/peripheral/i2c/sdkconfig
+++ b/example/peripheral/i2c/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -45,15 +39,14 @@ CONFIG_USE_MMU=y
#
# Soc configuration
#
-# CONFIG_TARGET_PHYTIUMPI is not set
+CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_E2000Q is not set
-CONFIG_TARGET_E2000D=y
+# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
-CONFIG_SOC_NAME="e2000"
-CONFIG_TARGET_TYPE_NAME="d"
-CONFIG_SOC_CORE_NUM=2
+CONFIG_SOC_NAME="phytiumpi"
+CONFIG_SOC_CORE_NUM=4
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
@@ -68,22 +61,21 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_E2000D_DEMO_BOARD=y
-CONFIG_BOARD_NAME="demo"
-
-#
-# IO mux configuration when board start up
-#
+CONFIG_BOARD_NAME="firefly"
# CONFIG_USE_SPI_IOPAD is not set
# CONFIG_USE_GPIO_IOPAD is not set
# CONFIG_USE_CAN_IOPAD is not set
# CONFIG_USE_QSPI_IOPAD is not set
# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_ADC_IOPAD is not set
# CONFIG_USE_MIO_IOPAD is not set
# CONFIG_USE_TACHO_IOPAD is not set
# CONFIG_USE_UART_IOPAD is not set
# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+CONFIG_FIREFLY_DEMO_BOARD=y
+
+#
+# IO mux configuration when board start up
+#
# end of IO mux configuration when board start up
# CONFIG_CUS_DEMO_BOARD is not set
@@ -126,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -163,6 +153,7 @@ CONFIG_ENABLE_MIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -202,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +319,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +329,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +354,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/i2c/sdkconfig.h b/example/peripheral/i2c/sdkconfig.h
index 0011401d52900eb85bd39ca05e80055e8f96c659..3af09f0319325840dcecce7e83028552b1b80c51 100644
--- a/example/peripheral/i2c/sdkconfig.h
+++ b/example/peripheral/i2c/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -41,15 +37,14 @@
/* Soc configuration */
-/* CONFIG_TARGET_PHYTIUMPI is not set */
+#define CONFIG_TARGET_PHYTIUMPI
/* CONFIG_TARGET_E2000Q is not set */
-#define CONFIG_TARGET_E2000D
+/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
-#define CONFIG_SOC_NAME "e2000"
-#define CONFIG_TARGET_TYPE_NAME "d"
-#define CONFIG_SOC_CORE_NUM 2
+#define CONFIG_SOC_NAME "phytiumpi"
+#define CONFIG_SOC_CORE_NUM 4
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
@@ -63,21 +58,20 @@
/* Board Configuration */
-#define CONFIG_E2000D_DEMO_BOARD
-#define CONFIG_BOARD_NAME "demo"
-
-/* IO mux configuration when board start up */
-
+#define CONFIG_BOARD_NAME "firefly"
/* CONFIG_USE_SPI_IOPAD is not set */
/* CONFIG_USE_GPIO_IOPAD is not set */
/* CONFIG_USE_CAN_IOPAD is not set */
/* CONFIG_USE_QSPI_IOPAD is not set */
/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_ADC_IOPAD is not set */
/* CONFIG_USE_MIO_IOPAD is not set */
/* CONFIG_USE_TACHO_IOPAD is not set */
/* CONFIG_USE_UART_IOPAD is not set */
/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
+#define CONFIG_FIREFLY_DEMO_BOARD
+
+/* IO mux configuration when board start up */
+
/* end of IO mux configuration when board start up */
/* CONFIG_CUS_DEMO_BOARD is not set */
@@ -115,8 +109,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -148,6 +140,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -183,7 +176,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -287,7 +281,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -298,9 +291,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -320,6 +315,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/peripheral/media/lvgl_demo/configs/e2000d_aarch32_demo_media.config b/example/peripheral/media/lvgl_demo/configs/e2000d_aarch32_demo_media.config
index c4b45e553414eea054ec3b7359693c028d852585..bdd5920704040427f876c56ad37c7f1adf526762 100644
--- a/example/peripheral/media/lvgl_demo/configs/e2000d_aarch32_demo_media.config
+++ b/example/peripheral/media/lvgl_demo/configs/e2000d_aarch32_demo_media.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-CONFIG_ARM_FPU_ABI_SOFT=y
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +162,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +202,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -330,7 +332,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -339,311 +340,14 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_SPIFFS is not set
# CONFIG_USE_LITTLE_FS is not set
CONFIG_USE_LVGL=y
-
-#
-# Lvgl configuration
-#
-# CONFIG_LV_CONF_SKIP is not set
-CONFIG_LV_CONF_MINIMAL=y
-
-#
-# Color settings
-#
-CONFIG_LV_COLOR_DEPTH_32=y
-# CONFIG_LV_COLOR_DEPTH_16 is not set
-# CONFIG_LV_COLOR_DEPTH_8 is not set
-# CONFIG_LV_COLOR_DEPTH_1 is not set
-CONFIG_LV_COLOR_DEPTH=32
-CONFIG_LV_COLOR_MIX_ROUND_OFS=128
-CONFIG_LV_COLOR_CHROMA_KEY_HEX=0x00FF00
-# end of Color settings
-
-#
-# Memory settings
-#
-# CONFIG_LV_MEM_CUSTOM is not set
-CONFIG_LV_MEM_SIZE_KILOBYTES=32
-CONFIG_LV_MEM_ADDR=0x0
-CONFIG_LV_MEM_BUF_MAX_NUM=16
-# CONFIG_LV_MEMCPY_MEMSET_STD is not set
-# end of Memory settings
-
-#
-# Hal settings
-#
-# CONFIG_LV_TICK_CUSTOM is not set
-CONFIG_LV_DPI_DEF=130
-# end of Hal settings
-
-#
-# Feature configuration
-#
-
-#
-# Drawing
-#
-CONFIG_LV_DRAW_COMPLEX=y
-CONFIG_LV_SHADOW_CACHE_SIZE=0
-CONFIG_LV_CIRCLE_CACHE_SIZE=4
-CONFIG_LV_LAYER_SIMPLE_BUF_SIZE=24576
-CONFIG_LV_IMG_CACHE_DEF_SIZE=0
-CONFIG_LV_GRADIENT_MAX_STOPS=2
-CONFIG_LV_GRAD_CACHE_DEF_SIZE=0
-# CONFIG_LV_DITHER_GRADIENT is not set
-CONFIG_LV_DISP_ROT_MAX_BUF=10240
-# end of Drawing
-
-#
-# Gpu
-#
-# CONFIG_LV_USE_GPU_ARM2D is not set
-# CONFIG_LV_USE_GPU_STM32_DMA2D is not set
-# CONFIG_LV_USE_GPU_SWM341_DMA2D is not set
-# CONFIG_LV_USE_GPU_NXP_PXP is not set
-# CONFIG_LV_USE_GPU_NXP_VG_LITE is not set
-# CONFIG_LV_USE_GPU_SDL is not set
-# end of Gpu
-
-#
-# Logging
-#
-# CONFIG_LV_USE_LOG is not set
-# end of Logging
-
-#
-# Asserts
-#
-CONFIG_LV_USE_ASSERT_NULL=y
-CONFIG_LV_USE_ASSERT_MALLOC=y
-# CONFIG_LV_USE_ASSERT_STYLE is not set
-# CONFIG_LV_USE_ASSERT_MEM_INTEGRITY is not set
-# CONFIG_LV_USE_ASSERT_OBJ is not set
-CONFIG_LV_ASSERT_HANDLER_INCLUDE="assert.h"
-# end of Asserts
-
-#
-# Others
-#
-# CONFIG_LV_USE_PERF_MONITOR is not set
-# CONFIG_LV_USE_MEM_MONITOR is not set
-# CONFIG_LV_USE_REFR_DEBUG is not set
-# CONFIG_LV_SPRINTF_CUSTOM is not set
-# CONFIG_LV_SPRINTF_USE_FLOAT is not set
-CONFIG_LV_USE_USER_DATA=y
-# CONFIG_LV_ENABLE_GC is not set
-# end of Others
-
-#
-# Compiler settings
-#
-# CONFIG_LV_BIG_ENDIAN_SYSTEM is not set
-CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE=1
-# CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM is not set
-# CONFIG_LV_USE_LARGE_COORD is not set
-# end of Compiler settings
-# end of Feature configuration
-
-#
-# Font usage
-#
-
-#
-# Enable built-in fonts
-#
-# CONFIG_LV_FONT_MONTSERRAT_8 is not set
-# CONFIG_LV_FONT_MONTSERRAT_10 is not set
-# CONFIG_LV_FONT_MONTSERRAT_12 is not set
-CONFIG_LV_FONT_MONTSERRAT_14=y
-# CONFIG_LV_FONT_MONTSERRAT_16 is not set
-# CONFIG_LV_FONT_MONTSERRAT_18 is not set
-# CONFIG_LV_FONT_MONTSERRAT_20 is not set
-# CONFIG_LV_FONT_MONTSERRAT_22 is not set
-# CONFIG_LV_FONT_MONTSERRAT_24 is not set
-# CONFIG_LV_FONT_MONTSERRAT_26 is not set
-# CONFIG_LV_FONT_MONTSERRAT_28 is not set
-# CONFIG_LV_FONT_MONTSERRAT_30 is not set
-# CONFIG_LV_FONT_MONTSERRAT_32 is not set
-# CONFIG_LV_FONT_MONTSERRAT_34 is not set
-# CONFIG_LV_FONT_MONTSERRAT_36 is not set
-# CONFIG_LV_FONT_MONTSERRAT_38 is not set
-# CONFIG_LV_FONT_MONTSERRAT_40 is not set
-# CONFIG_LV_FONT_MONTSERRAT_42 is not set
-# CONFIG_LV_FONT_MONTSERRAT_44 is not set
-# CONFIG_LV_FONT_MONTSERRAT_46 is not set
-# CONFIG_LV_FONT_MONTSERRAT_48 is not set
-# CONFIG_LV_FONT_MONTSERRAT_12_SUBPX is not set
-# CONFIG_LV_FONT_MONTSERRAT_28_COMPRESSED is not set
-# CONFIG_LV_FONT_DEJAVU_16_PERSIAN_HEBREW is not set
-# CONFIG_LV_FONT_SIMSUN_16_CJK is not set
-# CONFIG_LV_FONT_UNSCII_8 is not set
-# CONFIG_LV_FONT_UNSCII_16 is not set
-# end of Enable built-in fonts
-
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_8 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12 is not set
-CONFIG_LV_FONT_DEFAULT_MONTSERRAT_14=y
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_16 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_18 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_20 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_22 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_24 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_30 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_34 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_36 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_38 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_40 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_42 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_44 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_46 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_48 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12_SUBPX is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED is not set
-# CONFIG_LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW is not set
-# CONFIG_LV_FONT_DEFAULT_SIMSUN_16_CJK is not set
-# CONFIG_LV_FONT_DEFAULT_UNSCII_8 is not set
-# CONFIG_LV_FONT_DEFAULT_UNSCII_16 is not set
-# CONFIG_LV_FONT_FMT_TXT_LARGE is not set
-# CONFIG_LV_USE_FONT_COMPRESSED is not set
-# CONFIG_LV_USE_FONT_SUBPX is not set
-CONFIG_LV_USE_FONT_PLACEHOLDER=y
-# end of Font usage
-
-#
-# Text settings
-#
-CONFIG_LV_TXT_ENC_UTF8=y
-# CONFIG_LV_TXT_ENC_ASCII is not set
-CONFIG_LV_TXT_BREAK_CHARS=" ,.;:-_"
-CONFIG_LV_TXT_LINE_BREAK_LONG_LEN=0
-CONFIG_LV_TXT_COLOR_CMD="#"
-# CONFIG_LV_USE_BIDI is not set
-# CONFIG_LV_USE_ARABIC_PERSIAN_CHARS is not set
-# end of Text settings
-
-#
-# Widget usage
-#
-CONFIG_LV_USE_ARC=y
-CONFIG_LV_USE_BAR=y
-CONFIG_LV_USE_BTN=y
-CONFIG_LV_USE_BTNMATRIX=y
-CONFIG_LV_USE_CANVAS=y
-CONFIG_LV_USE_CHECKBOX=y
-CONFIG_LV_USE_DROPDOWN=y
-CONFIG_LV_USE_IMG=y
-CONFIG_LV_USE_LABEL=y
-CONFIG_LV_LABEL_TEXT_SELECTION=y
-CONFIG_LV_LABEL_LONG_TXT_HINT=y
-CONFIG_LV_USE_LINE=y
-CONFIG_LV_USE_ROLLER=y
-CONFIG_LV_ROLLER_INF_PAGES=7
-CONFIG_LV_USE_SLIDER=y
-CONFIG_LV_USE_SWITCH=y
-CONFIG_LV_USE_TEXTAREA=y
-CONFIG_LV_TEXTAREA_DEF_PWD_SHOW_TIME=1500
-CONFIG_LV_USE_TABLE=y
-# end of Widget usage
-
-#
-# Extra widgets
-#
-CONFIG_LV_USE_ANIMIMG=y
-CONFIG_LV_USE_CALENDAR=y
-# CONFIG_LV_CALENDAR_WEEK_STARTS_MONDAY is not set
-CONFIG_LV_USE_CALENDAR_HEADER_ARROW=y
-CONFIG_LV_USE_CALENDAR_HEADER_DROPDOWN=y
-CONFIG_LV_USE_CHART=y
-CONFIG_LV_USE_COLORWHEEL=y
-CONFIG_LV_USE_IMGBTN=y
-CONFIG_LV_USE_KEYBOARD=y
-CONFIG_LV_USE_LED=y
-CONFIG_LV_USE_LIST=y
-CONFIG_LV_USE_MENU=y
-CONFIG_LV_USE_METER=y
-CONFIG_LV_USE_MSGBOX=y
-CONFIG_LV_USE_SPAN=y
-CONFIG_LV_SPAN_SNIPPET_STACK_SIZE=64
-CONFIG_LV_USE_SPINBOX=y
-CONFIG_LV_USE_SPINNER=y
-CONFIG_LV_USE_TABVIEW=y
-CONFIG_LV_USE_TILEVIEW=y
-CONFIG_LV_USE_WIN=y
-# end of Extra widgets
-
-#
-# Themes
-#
-CONFIG_LV_USE_THEME_DEFAULT=y
-# CONFIG_LV_THEME_DEFAULT_DARK is not set
-CONFIG_LV_THEME_DEFAULT_GROW=y
-CONFIG_LV_THEME_DEFAULT_TRANSITION_TIME=80
-CONFIG_LV_USE_THEME_BASIC=y
-# CONFIG_LV_USE_THEME_MONO is not set
-# end of Themes
-
-#
-# Layouts
-#
-CONFIG_LV_USE_FLEX=y
-CONFIG_LV_USE_GRID=y
-# end of Layouts
-
-#
-# 3rd party libraries
-#
-# CONFIG_LV_USE_FS_STDIO is not set
-# CONFIG_LV_USE_FS_POSIX is not set
-# CONFIG_LV_USE_FS_WIN32 is not set
-# CONFIG_LV_USE_FS_FATFS is not set
-# CONFIG_LV_USE_PNG is not set
-# CONFIG_LV_USE_BMP is not set
-# CONFIG_LV_USE_SJPG is not set
-# CONFIG_LV_USE_GIF is not set
-# CONFIG_LV_USE_QRCODE is not set
-# CONFIG_LV_USE_FREETYPE is not set
-# CONFIG_LV_USE_RLOTTIE is not set
-# CONFIG_LV_USE_FFMPEG is not set
-# end of 3rd party libraries
-
-#
-# Others
-#
-CONFIG_LV_USE_SNAPSHOT=y
-# CONFIG_LV_USE_MONKEY is not set
-# CONFIG_LV_USE_GRIDNAV is not set
-# CONFIG_LV_USE_FRAGMENT is not set
-# CONFIG_LV_USE_IMGFONT is not set
-# CONFIG_LV_USE_MSG is not set
-# CONFIG_LV_USE_IME_PINYIN is not set
-# end of Others
-
-#
-# Examples
-#
-CONFIG_LV_BUILD_EXAMPLES=y
-# end of Examples
-
-#
-# Demos
-#
-# CONFIG_LV_USE_DEMO_WIDGETS is not set
-# CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER is not set
-CONFIG_LV_USE_DEMO_BENCHMARK=y
-# CONFIG_LV_DEMO_BENCHMARK_RGB565A8 is not set
-# CONFIG_LV_USE_DEMO_STRESS is not set
-# CONFIG_LV_USE_DEMO_MUSIC is not set
-# end of Demos
-# end of Lvgl configuration
-
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -663,4 +367,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/lvgl_demo/configs/e2000d_aarch64_demo_media.config b/example/peripheral/media/lvgl_demo/configs/e2000d_aarch64_demo_media.config
index 4a09da30ed94edcf6f4150780428584394023624..2164bbf824f097b6256684450e7de2a17c659170 100644
--- a/example/peripheral/media/lvgl_demo/configs/e2000d_aarch64_demo_media.config
+++ b/example/peripheral/media/lvgl_demo/configs/e2000d_aarch64_demo_media.config
@@ -126,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -164,6 +162,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -203,7 +202,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -328,7 +328,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -638,10 +637,11 @@ CONFIG_LV_USE_DEMO_BENCHMARK=y
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -661,4 +661,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/lvgl_demo/configs/e2000q_aarch32_demo_media.config b/example/peripheral/media/lvgl_demo/configs/e2000q_aarch32_demo_media.config
index 50a7ecf6a2d7a494640bdb1627e1fc1871cf1e10..ab4b7ad2d57fa0045eef1ea8b24415b1fe82dc45 100644
--- a/example/peripheral/media/lvgl_demo/configs/e2000q_aarch32_demo_media.config
+++ b/example/peripheral/media/lvgl_demo/configs/e2000q_aarch32_demo_media.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
CONFIG_ARM_FPU_ABI_SOFT=y
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +123,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +159,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +199,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -329,7 +329,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -639,10 +638,11 @@ CONFIG_LV_USE_DEMO_BENCHMARK=y
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -662,4 +662,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/lvgl_demo/configs/e2000q_aarch64_demo_media.config b/example/peripheral/media/lvgl_demo/configs/e2000q_aarch64_demo_media.config
index a6558ffe0b27c8ce3cc0b96c78ee5c2a9addd1d3..2a52772c1a8ea14bf08e3d8ccf3f8b565682d65c 100644
--- a/example/peripheral/media/lvgl_demo/configs/e2000q_aarch64_demo_media.config
+++ b/example/peripheral/media/lvgl_demo/configs/e2000q_aarch64_demo_media.config
@@ -125,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -163,6 +161,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -202,7 +201,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +327,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -637,10 +636,11 @@ CONFIG_LV_USE_DEMO_BENCHMARK=y
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -660,4 +660,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/lvgl_demo/configs/phytiumpi_aarch32_firefly_media.config b/example/peripheral/media/lvgl_demo/configs/phytiumpi_aarch32_firefly_media.config
index 5c5f2f9e0b7f6338bde29cb074b2f672bd315ca7..60493b9bee05b40ccf23c543c5ca0a79e28d79e2 100644
--- a/example/peripheral/media/lvgl_demo/configs/phytiumpi_aarch32_firefly_media.config
+++ b/example/peripheral/media/lvgl_demo/configs/phytiumpi_aarch32_firefly_media.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
CONFIG_ARM_FPU_ABI_SOFT=y
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +122,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +158,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +198,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -328,7 +328,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -638,10 +637,11 @@ CONFIG_LV_USE_DEMO_BENCHMARK=y
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -661,4 +661,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/lvgl_demo/configs/phytiumpi_aarch64_firefly_media.config b/example/peripheral/media/lvgl_demo/configs/phytiumpi_aarch64_firefly_media.config
index 6fc9c6f6076c76f8c2107a88ca7860df282a6369..8cd482f47c5f40dca7aa4f26e51e20127dd4a2aa 100644
--- a/example/peripheral/media/lvgl_demo/configs/phytiumpi_aarch64_firefly_media.config
+++ b/example/peripheral/media/lvgl_demo/configs/phytiumpi_aarch64_firefly_media.config
@@ -124,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +160,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +200,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +326,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -636,10 +635,12 @@ CONFIG_LV_USE_DEMO_BENCHMARK=y
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -659,4 +660,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/lvgl_demo/inc/lv_demo_creat.h b/example/peripheral/media/lvgl_demo/inc/lv_demo_creat.h
index df1b54221c4db47bd24240fa204a7630980346af..cca0c18d262ea81d3ef4f14d0f9ecfe0332848cb 100644
--- a/example/peripheral/media/lvgl_demo/inc/lv_demo_creat.h
+++ b/example/peripheral/media/lvgl_demo/inc/lv_demo_creat.h
@@ -53,10 +53,10 @@ typedef struct
BaseType_t FFreeRTOSlVGLDemoCreate(void);
/*creat the media init task*/
-BaseType_t FFreeRTOSMediaInitCreate(void *args);
+BaseType_t FFreeRTOSMediaInitCreate(void );
/*creat the lvgl config task*/
-BaseType_t FFreeRTOSlVGLConfigCreate(void *args);
+BaseType_t FFreeRTOSlVGLConfigCreate(void);
#if LV_USE_DEMO_BENCHMARK
/*the benchmark demo of lvgl*/
diff --git a/example/peripheral/media/lvgl_demo/inc/lv_demo_test.h b/example/peripheral/media/lvgl_demo/inc/lv_demo_test.h
index 62c314313f2e3b1bb6fccf988e05c9f7b0eea69c..1b807da3bce0ef88d69b212436130b8459892faf 100644
--- a/example/peripheral/media/lvgl_demo/inc/lv_demo_test.h
+++ b/example/peripheral/media/lvgl_demo/inc/lv_demo_test.h
@@ -36,13 +36,12 @@ extern "C" {
/*deinit the media*/
void FFreeRTOSMediaChannelDeinit(u32 id);
-
+/*lvgl config task*/
+void FFreeRTOSLVGLConfigTask(void );
/*handle the hpd event*/
-void FFreeRTOSMediaHpdHandle(u32 channel, u32 width, u32 height, u32 multi_mode, u32 color_depth, u32 refresh_rate);
-
+void FFreeRTOSMediaHpdHandle(void);
/*enable the Dc and Dp*/
-void FFreeRTOSMediaDeviceInit(u32 channel, u32 width, u32 height, u32 multi_mode, u32 color_depth, u32 refresh_rate);
-
+void FFreeRTOSMediaDeviceInit(void);
#ifdef __cplusplus
} /*extern "C"*/
#endif
diff --git a/example/peripheral/media/lvgl_demo/sdkconfig b/example/peripheral/media/lvgl_demo/sdkconfig
index 6fc9c6f6076c76f8c2107a88ca7860df282a6369..bdd5920704040427f876c56ad37c7f1adf526762 100644
--- a/example/peripheral/media/lvgl_demo/sdkconfig
+++ b/example/peripheral/media/lvgl_demo/sdkconfig
@@ -9,8 +9,8 @@ CONFIG_ARCH_NAME="armv8"
#
# Arm architecture configuration
#
-CONFIG_ARCH_ARMV8_AARCH64=y
-# CONFIG_ARCH_ARMV8_AARCH32 is not set
+# CONFIG_ARCH_ARMV8_AARCH64 is not set
+CONFIG_ARCH_ARMV8_AARCH32=y
#
# Compiler configuration
@@ -18,41 +18,42 @@ CONFIG_ARCH_ARMV8_AARCH64=y
CONFIG_ARM_GCC_SELECT=y
# CONFIG_ARM_CLANG_SELECT is not set
CONFIG_TOOLCHAIN_NAME="gcc"
-CONFIG_TARGET_ARMV8_AARCH64=y
-CONFIG_ARCH_EXECUTION_STATE="aarch64"
+CONFIG_TARGET_ARMV8_AARCH32=y
+CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-CONFIG_ARM_NEON=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
-
-CONFIG_ARM_CRC=y
-CONFIG_ARM_CRYPTO=y
-CONFIG_ARM_FLOAT_POINT=y
-# CONFIG_GCC_CODE_MODEL_TINY is not set
-CONFIG_GCC_CODE_MODEL_SMALL=y
-# CONFIG_GCC_CODE_MODEL_LARGE is not set
# end of Compiler configuration
CONFIG_USE_CACHE=y
CONFIG_USE_MMU=y
-# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
-# CONFIG_MMU_DEBUG_PRINTS is not set
+CONFIG_USE_AARCH64_L1_TO_AARCH32=y
# end of Arm architecture configuration
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
-# CONFIG_TARGET_E2000D is not set
+CONFIG_TARGET_E2000D=y
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="d"
+CONFIG_SOC_CORE_NUM=2
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
@@ -67,21 +68,22 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
+CONFIG_E2000D_DEMO_BOARD=y
+CONFIG_BOARD_NAME="demo"
+
+#
+# IO mux configuration when board start up
+#
# CONFIG_USE_SPI_IOPAD is not set
# CONFIG_USE_GPIO_IOPAD is not set
# CONFIG_USE_CAN_IOPAD is not set
# CONFIG_USE_QSPI_IOPAD is not set
# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_ADC_IOPAD is not set
# CONFIG_USE_MIO_IOPAD is not set
# CONFIG_USE_TACHO_IOPAD is not set
# CONFIG_USE_UART_IOPAD is not set
# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
# end of IO mux configuration when board start up
# CONFIG_CUS_DEMO_BOARD is not set
@@ -124,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +162,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +202,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -214,8 +216,12 @@ CONFIG_DEFAULT_LINKER_SCRIPT=y
CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
CONFIG_IMAGE_MAX_LENGTH=0x100000000
CONFIG_HEAP_SIZE=1
-CONFIG_STACK_SIZE=0x400
-CONFIG_FPU_STACK_SIZE=0x1000
+CONFIG_SVC_STACK_SIZE=0x1000
+CONFIG_SYS_STACK_SIZE=0x1000
+CONFIG_IRQ_STACK_SIZE=0x1000
+CONFIG_ABORT_STACK_SIZE=0x1000
+CONFIG_FIQ_STACK_SIZE=0x1000
+CONFIG_UNDEF_STACK_SIZE=0x1000
# end of Linker Options
# end of Build setup
@@ -326,7 +332,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -335,311 +340,14 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_SPIFFS is not set
# CONFIG_USE_LITTLE_FS is not set
CONFIG_USE_LVGL=y
-
-#
-# Lvgl configuration
-#
-# CONFIG_LV_CONF_SKIP is not set
-CONFIG_LV_CONF_MINIMAL=y
-
-#
-# Color settings
-#
-CONFIG_LV_COLOR_DEPTH_32=y
-# CONFIG_LV_COLOR_DEPTH_16 is not set
-# CONFIG_LV_COLOR_DEPTH_8 is not set
-# CONFIG_LV_COLOR_DEPTH_1 is not set
-CONFIG_LV_COLOR_DEPTH=32
-CONFIG_LV_COLOR_MIX_ROUND_OFS=128
-CONFIG_LV_COLOR_CHROMA_KEY_HEX=0x00FF00
-# end of Color settings
-
-#
-# Memory settings
-#
-# CONFIG_LV_MEM_CUSTOM is not set
-CONFIG_LV_MEM_SIZE_KILOBYTES=32
-CONFIG_LV_MEM_ADDR=0x0
-CONFIG_LV_MEM_BUF_MAX_NUM=16
-# CONFIG_LV_MEMCPY_MEMSET_STD is not set
-# end of Memory settings
-
-#
-# Hal settings
-#
-# CONFIG_LV_TICK_CUSTOM is not set
-CONFIG_LV_DPI_DEF=130
-# end of Hal settings
-
-#
-# Feature configuration
-#
-
-#
-# Drawing
-#
-CONFIG_LV_DRAW_COMPLEX=y
-CONFIG_LV_SHADOW_CACHE_SIZE=0
-CONFIG_LV_CIRCLE_CACHE_SIZE=4
-CONFIG_LV_LAYER_SIMPLE_BUF_SIZE=24576
-CONFIG_LV_IMG_CACHE_DEF_SIZE=0
-CONFIG_LV_GRADIENT_MAX_STOPS=2
-CONFIG_LV_GRAD_CACHE_DEF_SIZE=0
-# CONFIG_LV_DITHER_GRADIENT is not set
-CONFIG_LV_DISP_ROT_MAX_BUF=10240
-# end of Drawing
-
-#
-# Gpu
-#
-# CONFIG_LV_USE_GPU_ARM2D is not set
-# CONFIG_LV_USE_GPU_STM32_DMA2D is not set
-# CONFIG_LV_USE_GPU_SWM341_DMA2D is not set
-# CONFIG_LV_USE_GPU_NXP_PXP is not set
-# CONFIG_LV_USE_GPU_NXP_VG_LITE is not set
-# CONFIG_LV_USE_GPU_SDL is not set
-# end of Gpu
-
-#
-# Logging
-#
-# CONFIG_LV_USE_LOG is not set
-# end of Logging
-
-#
-# Asserts
-#
-CONFIG_LV_USE_ASSERT_NULL=y
-CONFIG_LV_USE_ASSERT_MALLOC=y
-# CONFIG_LV_USE_ASSERT_STYLE is not set
-# CONFIG_LV_USE_ASSERT_MEM_INTEGRITY is not set
-# CONFIG_LV_USE_ASSERT_OBJ is not set
-CONFIG_LV_ASSERT_HANDLER_INCLUDE="assert.h"
-# end of Asserts
-
-#
-# Others
-#
-# CONFIG_LV_USE_PERF_MONITOR is not set
-# CONFIG_LV_USE_MEM_MONITOR is not set
-# CONFIG_LV_USE_REFR_DEBUG is not set
-# CONFIG_LV_SPRINTF_CUSTOM is not set
-# CONFIG_LV_SPRINTF_USE_FLOAT is not set
-CONFIG_LV_USE_USER_DATA=y
-# CONFIG_LV_ENABLE_GC is not set
-# end of Others
-
-#
-# Compiler settings
-#
-# CONFIG_LV_BIG_ENDIAN_SYSTEM is not set
-CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE=1
-# CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM is not set
-# CONFIG_LV_USE_LARGE_COORD is not set
-# end of Compiler settings
-# end of Feature configuration
-
-#
-# Font usage
-#
-
-#
-# Enable built-in fonts
-#
-# CONFIG_LV_FONT_MONTSERRAT_8 is not set
-# CONFIG_LV_FONT_MONTSERRAT_10 is not set
-# CONFIG_LV_FONT_MONTSERRAT_12 is not set
-CONFIG_LV_FONT_MONTSERRAT_14=y
-# CONFIG_LV_FONT_MONTSERRAT_16 is not set
-# CONFIG_LV_FONT_MONTSERRAT_18 is not set
-# CONFIG_LV_FONT_MONTSERRAT_20 is not set
-# CONFIG_LV_FONT_MONTSERRAT_22 is not set
-# CONFIG_LV_FONT_MONTSERRAT_24 is not set
-# CONFIG_LV_FONT_MONTSERRAT_26 is not set
-# CONFIG_LV_FONT_MONTSERRAT_28 is not set
-# CONFIG_LV_FONT_MONTSERRAT_30 is not set
-# CONFIG_LV_FONT_MONTSERRAT_32 is not set
-# CONFIG_LV_FONT_MONTSERRAT_34 is not set
-# CONFIG_LV_FONT_MONTSERRAT_36 is not set
-# CONFIG_LV_FONT_MONTSERRAT_38 is not set
-# CONFIG_LV_FONT_MONTSERRAT_40 is not set
-# CONFIG_LV_FONT_MONTSERRAT_42 is not set
-# CONFIG_LV_FONT_MONTSERRAT_44 is not set
-# CONFIG_LV_FONT_MONTSERRAT_46 is not set
-# CONFIG_LV_FONT_MONTSERRAT_48 is not set
-# CONFIG_LV_FONT_MONTSERRAT_12_SUBPX is not set
-# CONFIG_LV_FONT_MONTSERRAT_28_COMPRESSED is not set
-# CONFIG_LV_FONT_DEJAVU_16_PERSIAN_HEBREW is not set
-# CONFIG_LV_FONT_SIMSUN_16_CJK is not set
-# CONFIG_LV_FONT_UNSCII_8 is not set
-# CONFIG_LV_FONT_UNSCII_16 is not set
-# end of Enable built-in fonts
-
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_8 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12 is not set
-CONFIG_LV_FONT_DEFAULT_MONTSERRAT_14=y
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_16 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_18 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_20 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_22 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_24 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_30 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_34 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_36 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_38 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_40 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_42 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_44 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_46 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_48 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12_SUBPX is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED is not set
-# CONFIG_LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW is not set
-# CONFIG_LV_FONT_DEFAULT_SIMSUN_16_CJK is not set
-# CONFIG_LV_FONT_DEFAULT_UNSCII_8 is not set
-# CONFIG_LV_FONT_DEFAULT_UNSCII_16 is not set
-# CONFIG_LV_FONT_FMT_TXT_LARGE is not set
-# CONFIG_LV_USE_FONT_COMPRESSED is not set
-# CONFIG_LV_USE_FONT_SUBPX is not set
-CONFIG_LV_USE_FONT_PLACEHOLDER=y
-# end of Font usage
-
-#
-# Text settings
-#
-CONFIG_LV_TXT_ENC_UTF8=y
-# CONFIG_LV_TXT_ENC_ASCII is not set
-CONFIG_LV_TXT_BREAK_CHARS=" ,.;:-_"
-CONFIG_LV_TXT_LINE_BREAK_LONG_LEN=0
-CONFIG_LV_TXT_COLOR_CMD="#"
-# CONFIG_LV_USE_BIDI is not set
-# CONFIG_LV_USE_ARABIC_PERSIAN_CHARS is not set
-# end of Text settings
-
-#
-# Widget usage
-#
-CONFIG_LV_USE_ARC=y
-CONFIG_LV_USE_BAR=y
-CONFIG_LV_USE_BTN=y
-CONFIG_LV_USE_BTNMATRIX=y
-CONFIG_LV_USE_CANVAS=y
-CONFIG_LV_USE_CHECKBOX=y
-CONFIG_LV_USE_DROPDOWN=y
-CONFIG_LV_USE_IMG=y
-CONFIG_LV_USE_LABEL=y
-CONFIG_LV_LABEL_TEXT_SELECTION=y
-CONFIG_LV_LABEL_LONG_TXT_HINT=y
-CONFIG_LV_USE_LINE=y
-CONFIG_LV_USE_ROLLER=y
-CONFIG_LV_ROLLER_INF_PAGES=7
-CONFIG_LV_USE_SLIDER=y
-CONFIG_LV_USE_SWITCH=y
-CONFIG_LV_USE_TEXTAREA=y
-CONFIG_LV_TEXTAREA_DEF_PWD_SHOW_TIME=1500
-CONFIG_LV_USE_TABLE=y
-# end of Widget usage
-
-#
-# Extra widgets
-#
-CONFIG_LV_USE_ANIMIMG=y
-CONFIG_LV_USE_CALENDAR=y
-# CONFIG_LV_CALENDAR_WEEK_STARTS_MONDAY is not set
-CONFIG_LV_USE_CALENDAR_HEADER_ARROW=y
-CONFIG_LV_USE_CALENDAR_HEADER_DROPDOWN=y
-CONFIG_LV_USE_CHART=y
-CONFIG_LV_USE_COLORWHEEL=y
-CONFIG_LV_USE_IMGBTN=y
-CONFIG_LV_USE_KEYBOARD=y
-CONFIG_LV_USE_LED=y
-CONFIG_LV_USE_LIST=y
-CONFIG_LV_USE_MENU=y
-CONFIG_LV_USE_METER=y
-CONFIG_LV_USE_MSGBOX=y
-CONFIG_LV_USE_SPAN=y
-CONFIG_LV_SPAN_SNIPPET_STACK_SIZE=64
-CONFIG_LV_USE_SPINBOX=y
-CONFIG_LV_USE_SPINNER=y
-CONFIG_LV_USE_TABVIEW=y
-CONFIG_LV_USE_TILEVIEW=y
-CONFIG_LV_USE_WIN=y
-# end of Extra widgets
-
-#
-# Themes
-#
-CONFIG_LV_USE_THEME_DEFAULT=y
-# CONFIG_LV_THEME_DEFAULT_DARK is not set
-CONFIG_LV_THEME_DEFAULT_GROW=y
-CONFIG_LV_THEME_DEFAULT_TRANSITION_TIME=80
-CONFIG_LV_USE_THEME_BASIC=y
-# CONFIG_LV_USE_THEME_MONO is not set
-# end of Themes
-
-#
-# Layouts
-#
-CONFIG_LV_USE_FLEX=y
-CONFIG_LV_USE_GRID=y
-# end of Layouts
-
-#
-# 3rd party libraries
-#
-# CONFIG_LV_USE_FS_STDIO is not set
-# CONFIG_LV_USE_FS_POSIX is not set
-# CONFIG_LV_USE_FS_WIN32 is not set
-# CONFIG_LV_USE_FS_FATFS is not set
-# CONFIG_LV_USE_PNG is not set
-# CONFIG_LV_USE_BMP is not set
-# CONFIG_LV_USE_SJPG is not set
-# CONFIG_LV_USE_GIF is not set
-# CONFIG_LV_USE_QRCODE is not set
-# CONFIG_LV_USE_FREETYPE is not set
-# CONFIG_LV_USE_RLOTTIE is not set
-# CONFIG_LV_USE_FFMPEG is not set
-# end of 3rd party libraries
-
-#
-# Others
-#
-CONFIG_LV_USE_SNAPSHOT=y
-# CONFIG_LV_USE_MONKEY is not set
-# CONFIG_LV_USE_GRIDNAV is not set
-# CONFIG_LV_USE_FRAGMENT is not set
-# CONFIG_LV_USE_IMGFONT is not set
-# CONFIG_LV_USE_MSG is not set
-# CONFIG_LV_USE_IME_PINYIN is not set
-# end of Others
-
-#
-# Examples
-#
-CONFIG_LV_BUILD_EXAMPLES=y
-# end of Examples
-
-#
-# Demos
-#
-# CONFIG_LV_USE_DEMO_WIDGETS is not set
-# CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER is not set
-CONFIG_LV_USE_DEMO_BENCHMARK=y
-# CONFIG_LV_DEMO_BENCHMARK_RGB565A8 is not set
-# CONFIG_LV_USE_DEMO_STRESS is not set
-# CONFIG_LV_USE_DEMO_MUSIC is not set
-# end of Demos
-# end of Lvgl configuration
-
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -659,4 +367,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/lvgl_demo/sdkconfig.h b/example/peripheral/media/lvgl_demo/sdkconfig.h
index eb8da932212a0d62a7197d52c00c4086ecac60a5..404dfdd005c1bbc4761cd2a4babbca9eda1369cf 100644
--- a/example/peripheral/media/lvgl_demo/sdkconfig.h
+++ b/example/peripheral/media/lvgl_demo/sdkconfig.h
@@ -10,45 +10,47 @@
/* Arm architecture configuration */
-#define CONFIG_ARCH_ARMV8_AARCH64
-/* CONFIG_ARCH_ARMV8_AARCH32 is not set */
+/* CONFIG_ARCH_ARMV8_AARCH64 is not set */
+#define CONFIG_ARCH_ARMV8_AARCH32
/* Compiler configuration */
#define CONFIG_ARM_GCC_SELECT
/* CONFIG_ARM_CLANG_SELECT is not set */
#define CONFIG_TOOLCHAIN_NAME "gcc"
-#define CONFIG_TARGET_ARMV8_AARCH64
-#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
+#define CONFIG_TARGET_ARMV8_AARCH32
+#define CONFIG_ARCH_EXECUTION_STATE "aarch32"
/* Fpu configuration */
-#define CONFIG_ARM_NEON
+#define CONFIG_CRYPTO_NEON_FP_ARMV8
+/* CONFIG_VFPV4 is not set */
+/* CONFIG_VFPV4_D16 is not set */
+/* CONFIG_VFPV3 is not set */
+/* CONFIG_VFPV3_D16 is not set */
+#define CONFIG_ARM_MFPU "crypto-neon-fp-armv8"
+#define CONFIG_MFLOAT_ABI_HARD
+/* CONFIG_MFLOAT_ABI_SOFTFP is not set */
+#define CONFIG_ARM_MFLOAT_ABI "hard"
/* end of Fpu configuration */
-#define CONFIG_ARM_CRC
-#define CONFIG_ARM_CRYPTO
-#define CONFIG_ARM_FLOAT_POINT
-/* CONFIG_GCC_CODE_MODEL_TINY is not set */
-#define CONFIG_GCC_CODE_MODEL_SMALL
-/* CONFIG_GCC_CODE_MODEL_LARGE is not set */
/* end of Compiler configuration */
#define CONFIG_USE_CACHE
#define CONFIG_USE_MMU
-/* CONFIG_BOOT_WITH_FLUSH_CACHE is not set */
-/* CONFIG_MMU_DEBUG_PRINTS is not set */
+#define CONFIG_USE_AARCH64_L1_TO_AARCH32
/* end of Arm architecture configuration */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
-/* CONFIG_TARGET_E2000D is not set */
+#define CONFIG_TARGET_E2000D
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "e2000"
+#define CONFIG_TARGET_TYPE_NAME "d"
+#define CONFIG_SOC_CORE_NUM 2
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
@@ -62,20 +64,21 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
+#define CONFIG_E2000D_DEMO_BOARD
+#define CONFIG_BOARD_NAME "demo"
+
+/* IO mux configuration when board start up */
+
/* CONFIG_USE_SPI_IOPAD is not set */
/* CONFIG_USE_GPIO_IOPAD is not set */
/* CONFIG_USE_CAN_IOPAD is not set */
/* CONFIG_USE_QSPI_IOPAD is not set */
/* CONFIG_USE_PWM_IOPAD is not set */
+/* CONFIG_USE_ADC_IOPAD is not set */
/* CONFIG_USE_MIO_IOPAD is not set */
/* CONFIG_USE_TACHO_IOPAD is not set */
/* CONFIG_USE_UART_IOPAD is not set */
/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
/* end of IO mux configuration when board start up */
/* CONFIG_CUS_DEMO_BOARD is not set */
@@ -113,8 +116,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -147,6 +148,7 @@
#define CONFIG_ENABLE_FDC_DP_USE_LIB
/* end of Media Configuration */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -182,7 +184,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -193,8 +196,12 @@
#define CONFIG_IMAGE_LOAD_ADDRESS 0x80100000
#define CONFIG_IMAGE_MAX_LENGTH 0x100000000
#define CONFIG_HEAP_SIZE 1
-#define CONFIG_STACK_SIZE 0x400
-#define CONFIG_FPU_STACK_SIZE 0x1000
+#define CONFIG_SVC_STACK_SIZE 0x1000
+#define CONFIG_SYS_STACK_SIZE 0x1000
+#define CONFIG_IRQ_STACK_SIZE 0x1000
+#define CONFIG_ABORT_STACK_SIZE 0x1000
+#define CONFIG_FIQ_STACK_SIZE 0x1000
+#define CONFIG_UNDEF_STACK_SIZE 0x1000
/* end of Linker Options */
/* end of Build setup */
@@ -286,7 +293,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -295,284 +301,13 @@
/* CONFIG_USE_SPIFFS is not set */
/* CONFIG_USE_LITTLE_FS is not set */
#define CONFIG_USE_LVGL
-
-/* Lvgl configuration */
-
-/* CONFIG_LV_CONF_SKIP is not set */
-#define CONFIG_LV_CONF_MINIMAL
-
-/* Color settings */
-
-#define CONFIG_LV_COLOR_DEPTH_32
-/* CONFIG_LV_COLOR_DEPTH_16 is not set */
-/* CONFIG_LV_COLOR_DEPTH_8 is not set */
-/* CONFIG_LV_COLOR_DEPTH_1 is not set */
-#define CONFIG_LV_COLOR_DEPTH 32
-#define CONFIG_LV_COLOR_MIX_ROUND_OFS 128
-#define CONFIG_LV_COLOR_CHROMA_KEY_HEX 0x00FF00
-/* end of Color settings */
-
-/* Memory settings */
-
-/* CONFIG_LV_MEM_CUSTOM is not set */
-#define CONFIG_LV_MEM_SIZE_KILOBYTES 32
-#define CONFIG_LV_MEM_ADDR 0x0
-#define CONFIG_LV_MEM_BUF_MAX_NUM 16
-/* CONFIG_LV_MEMCPY_MEMSET_STD is not set */
-/* end of Memory settings */
-
-/* Hal settings */
-
-/* CONFIG_LV_TICK_CUSTOM is not set */
-#define CONFIG_LV_DPI_DEF 130
-/* end of Hal settings */
-
-/* Feature configuration */
-
-/* Drawing */
-
-#define CONFIG_LV_DRAW_COMPLEX
-#define CONFIG_LV_SHADOW_CACHE_SIZE 0
-#define CONFIG_LV_CIRCLE_CACHE_SIZE 4
-#define CONFIG_LV_LAYER_SIMPLE_BUF_SIZE 24576
-#define CONFIG_LV_IMG_CACHE_DEF_SIZE 0
-#define CONFIG_LV_GRADIENT_MAX_STOPS 2
-#define CONFIG_LV_GRAD_CACHE_DEF_SIZE 0
-/* CONFIG_LV_DITHER_GRADIENT is not set */
-#define CONFIG_LV_DISP_ROT_MAX_BUF 10240
-/* end of Drawing */
-
-/* Gpu */
-
-/* CONFIG_LV_USE_GPU_ARM2D is not set */
-/* CONFIG_LV_USE_GPU_STM32_DMA2D is not set */
-/* CONFIG_LV_USE_GPU_SWM341_DMA2D is not set */
-/* CONFIG_LV_USE_GPU_NXP_PXP is not set */
-/* CONFIG_LV_USE_GPU_NXP_VG_LITE is not set */
-/* CONFIG_LV_USE_GPU_SDL is not set */
-/* end of Gpu */
-
-/* Logging */
-
-/* CONFIG_LV_USE_LOG is not set */
-/* end of Logging */
-
-/* Asserts */
-
-#define CONFIG_LV_USE_ASSERT_NULL
-#define CONFIG_LV_USE_ASSERT_MALLOC
-/* CONFIG_LV_USE_ASSERT_STYLE is not set */
-/* CONFIG_LV_USE_ASSERT_MEM_INTEGRITY is not set */
-/* CONFIG_LV_USE_ASSERT_OBJ is not set */
-#define CONFIG_LV_ASSERT_HANDLER_INCLUDE "assert.h"
-/* end of Asserts */
-
-/* Others */
-
-/* CONFIG_LV_USE_PERF_MONITOR is not set */
-/* CONFIG_LV_USE_MEM_MONITOR is not set */
-/* CONFIG_LV_USE_REFR_DEBUG is not set */
-/* CONFIG_LV_SPRINTF_CUSTOM is not set */
-/* CONFIG_LV_SPRINTF_USE_FLOAT is not set */
-#define CONFIG_LV_USE_USER_DATA
-/* CONFIG_LV_ENABLE_GC is not set */
-/* end of Others */
-
-/* Compiler settings */
-
-/* CONFIG_LV_BIG_ENDIAN_SYSTEM is not set */
-#define CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE 1
-/* CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM is not set */
-/* CONFIG_LV_USE_LARGE_COORD is not set */
-/* end of Compiler settings */
-/* end of Feature configuration */
-
-/* Font usage */
-
-/* Enable built-in fonts */
-
-/* CONFIG_LV_FONT_MONTSERRAT_8 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_10 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_12 is not set */
-#define CONFIG_LV_FONT_MONTSERRAT_14
-/* CONFIG_LV_FONT_MONTSERRAT_16 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_18 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_20 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_22 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_24 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_26 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_28 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_30 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_32 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_34 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_36 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_38 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_40 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_42 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_44 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_46 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_48 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_12_SUBPX is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_28_COMPRESSED is not set */
-/* CONFIG_LV_FONT_DEJAVU_16_PERSIAN_HEBREW is not set */
-/* CONFIG_LV_FONT_SIMSUN_16_CJK is not set */
-/* CONFIG_LV_FONT_UNSCII_8 is not set */
-/* CONFIG_LV_FONT_UNSCII_16 is not set */
-/* end of Enable built-in fonts */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_8 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12 is not set */
-#define CONFIG_LV_FONT_DEFAULT_MONTSERRAT_14
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_16 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_18 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_20 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_22 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_24 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_30 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_34 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_36 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_38 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_40 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_42 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_44 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_46 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_48 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12_SUBPX is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED is not set */
-/* CONFIG_LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW is not set */
-/* CONFIG_LV_FONT_DEFAULT_SIMSUN_16_CJK is not set */
-/* CONFIG_LV_FONT_DEFAULT_UNSCII_8 is not set */
-/* CONFIG_LV_FONT_DEFAULT_UNSCII_16 is not set */
-/* CONFIG_LV_FONT_FMT_TXT_LARGE is not set */
-/* CONFIG_LV_USE_FONT_COMPRESSED is not set */
-/* CONFIG_LV_USE_FONT_SUBPX is not set */
-#define CONFIG_LV_USE_FONT_PLACEHOLDER
-/* end of Font usage */
-
-/* Text settings */
-
-#define CONFIG_LV_TXT_ENC_UTF8
-/* CONFIG_LV_TXT_ENC_ASCII is not set */
-#define CONFIG_LV_TXT_BREAK_CHARS " ,.;:-_"
-#define CONFIG_LV_TXT_LINE_BREAK_LONG_LEN 0
-#define CONFIG_LV_TXT_COLOR_CMD "#"
-/* CONFIG_LV_USE_BIDI is not set */
-/* CONFIG_LV_USE_ARABIC_PERSIAN_CHARS is not set */
-/* end of Text settings */
-
-/* Widget usage */
-
-#define CONFIG_LV_USE_ARC
-#define CONFIG_LV_USE_BAR
-#define CONFIG_LV_USE_BTN
-#define CONFIG_LV_USE_BTNMATRIX
-#define CONFIG_LV_USE_CANVAS
-#define CONFIG_LV_USE_CHECKBOX
-#define CONFIG_LV_USE_DROPDOWN
-#define CONFIG_LV_USE_IMG
-#define CONFIG_LV_USE_LABEL
-#define CONFIG_LV_LABEL_TEXT_SELECTION
-#define CONFIG_LV_LABEL_LONG_TXT_HINT
-#define CONFIG_LV_USE_LINE
-#define CONFIG_LV_USE_ROLLER
-#define CONFIG_LV_ROLLER_INF_PAGES 7
-#define CONFIG_LV_USE_SLIDER
-#define CONFIG_LV_USE_SWITCH
-#define CONFIG_LV_USE_TEXTAREA
-#define CONFIG_LV_TEXTAREA_DEF_PWD_SHOW_TIME 1500
-#define CONFIG_LV_USE_TABLE
-/* end of Widget usage */
-
-/* Extra widgets */
-
-#define CONFIG_LV_USE_ANIMIMG
-#define CONFIG_LV_USE_CALENDAR
-/* CONFIG_LV_CALENDAR_WEEK_STARTS_MONDAY is not set */
-#define CONFIG_LV_USE_CALENDAR_HEADER_ARROW
-#define CONFIG_LV_USE_CALENDAR_HEADER_DROPDOWN
-#define CONFIG_LV_USE_CHART
-#define CONFIG_LV_USE_COLORWHEEL
-#define CONFIG_LV_USE_IMGBTN
-#define CONFIG_LV_USE_KEYBOARD
-#define CONFIG_LV_USE_LED
-#define CONFIG_LV_USE_LIST
-#define CONFIG_LV_USE_MENU
-#define CONFIG_LV_USE_METER
-#define CONFIG_LV_USE_MSGBOX
-#define CONFIG_LV_USE_SPAN
-#define CONFIG_LV_SPAN_SNIPPET_STACK_SIZE 64
-#define CONFIG_LV_USE_SPINBOX
-#define CONFIG_LV_USE_SPINNER
-#define CONFIG_LV_USE_TABVIEW
-#define CONFIG_LV_USE_TILEVIEW
-#define CONFIG_LV_USE_WIN
-/* end of Extra widgets */
-
-/* Themes */
-
-#define CONFIG_LV_USE_THEME_DEFAULT
-/* CONFIG_LV_THEME_DEFAULT_DARK is not set */
-#define CONFIG_LV_THEME_DEFAULT_GROW
-#define CONFIG_LV_THEME_DEFAULT_TRANSITION_TIME 80
-#define CONFIG_LV_USE_THEME_BASIC
-/* CONFIG_LV_USE_THEME_MONO is not set */
-/* end of Themes */
-
-/* Layouts */
-
-#define CONFIG_LV_USE_FLEX
-#define CONFIG_LV_USE_GRID
-/* end of Layouts */
-
-/* 3rd party libraries */
-
-/* CONFIG_LV_USE_FS_STDIO is not set */
-/* CONFIG_LV_USE_FS_POSIX is not set */
-/* CONFIG_LV_USE_FS_WIN32 is not set */
-/* CONFIG_LV_USE_FS_FATFS is not set */
-/* CONFIG_LV_USE_PNG is not set */
-/* CONFIG_LV_USE_BMP is not set */
-/* CONFIG_LV_USE_SJPG is not set */
-/* CONFIG_LV_USE_GIF is not set */
-/* CONFIG_LV_USE_QRCODE is not set */
-/* CONFIG_LV_USE_FREETYPE is not set */
-/* CONFIG_LV_USE_RLOTTIE is not set */
-/* CONFIG_LV_USE_FFMPEG is not set */
-/* end of 3rd party libraries */
-
-/* Others */
-
-#define CONFIG_LV_USE_SNAPSHOT
-/* CONFIG_LV_USE_MONKEY is not set */
-/* CONFIG_LV_USE_GRIDNAV is not set */
-/* CONFIG_LV_USE_FRAGMENT is not set */
-/* CONFIG_LV_USE_IMGFONT is not set */
-/* CONFIG_LV_USE_MSG is not set */
-/* CONFIG_LV_USE_IME_PINYIN is not set */
-/* end of Others */
-
-/* Examples */
-
-#define CONFIG_LV_BUILD_EXAMPLES
-/* end of Examples */
-
-/* Demos */
-
-/* CONFIG_LV_USE_DEMO_WIDGETS is not set */
-/* CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER is not set */
-#define CONFIG_LV_USE_DEMO_BENCHMARK
-/* CONFIG_LV_DEMO_BENCHMARK_RGB565A8 is not set */
-/* CONFIG_LV_USE_DEMO_STRESS is not set */
-/* CONFIG_LV_USE_DEMO_MUSIC is not set */
-/* end of Demos */
-/* end of Lvgl configuration */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -592,6 +327,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/peripheral/media/lvgl_demo/src/cmd.c b/example/peripheral/media/lvgl_demo/src/cmd.c
index 01293fef7e45c27c1d36fd539addcf7000be6c62..c5a1af063a21bf83c2eb037803aec475bbede47a 100644
--- a/example/peripheral/media/lvgl_demo/src/cmd.c
+++ b/example/peripheral/media/lvgl_demo/src/cmd.c
@@ -39,24 +39,17 @@
#include "lv_demo_creat.h"
#include "lv_demo_test.h"
-static InputParm input_config;
-
static void FFreeRTOSMediaCmdUsage(void)
{
printf("Usage:\r\n");
- printf(" Media init 0/1/2, channel 0 ,channel 1 , channel 0 and channel 1 \r\n");
- printf(" -- the resolution of width\r\n");
- printf(" -- the resolution of height\r\n");
- printf(" -- the sigle screen or multi-display \r\n");
- printf(" -- the color_depth of screen ,default color_depth is 32\r\n");
- printf(" -- the refresh_rate of screen ,default refresh_rate is 60\r\n");
+ printf(" Media init \r\n");
+ printf(" -- init the Media\r\n");
printf(" Media lvgl-init \r\n");
printf(" -- init the lvgl and set the para for demo\r\n");
printf(" Media demo \r\n");
printf(" -- a test demo for user to comprehend the driver\r\n");
- printf(" Media deinit \r\n");
- printf(" -- deinit the channel\r\n");
+ printf(" Media deinit \r\n");
+ printf(" -- deinit the channel\r\n");
}
static int MediaCmdEntry(int argc, char *argv[])
@@ -70,34 +63,14 @@ static int MediaCmdEntry(int argc, char *argv[])
}
if (!strcmp(argv[1], "init"))
{
- if (argc >= 3)
- {
- input_config.channel = (u32)simple_strtoul(argv[2], NULL, 10);
- if (input_config.channel > FDCDP_INSTANCE_NUM)
- {
- printf("please insert the correct num,such as 0,1 or 2 \r\n");
- }
- input_config.width = (u32)simple_strtoul(argv[3], NULL, 10);
- input_config.height = (u32)simple_strtoul(argv[4], NULL, 10);
- input_config.multi_mode = (u32)simple_strtoul(argv[5], NULL, 10);
- input_config.color_depth = (u32)simple_strtoul(argv[6], NULL, 10);
- input_config.refresh_rate = (u32)simple_strtoul(argv[7], NULL, 10);
- }
- else
- {
- input_config.channel = 0;
- input_config.width = 1024;
- input_config.height = 768;
- input_config.multi_mode = 0;
- input_config.color_depth = 32;
- input_config.refresh_rate = 60;
- }
- BaseType_t task_ret = FFreeRTOSMediaInitCreate(&input_config);
+ BaseType_t task_ret = FFreeRTOSMediaInitCreate();
+
if (pdPASS != task_ret)
{
return -2;
}
inited = TRUE;
+
}
if (!strcmp(argv[1], "lvgl-init"))
{
@@ -106,7 +79,7 @@ static int MediaCmdEntry(int argc, char *argv[])
printf("please ensure the media has been inited \r\n");
return -2;
}
- BaseType_t task_ret = FFreeRTOSlVGLConfigCreate(&input_config);
+ BaseType_t task_ret = FFreeRTOSlVGLConfigCreate();
if (pdPASS != task_ret)
{
@@ -139,9 +112,10 @@ static int MediaCmdEntry(int argc, char *argv[])
id = (u32)simple_strtoul(argv[2], NULL, 10);
}
FFreeRTOSMediaChannelDeinit(id);
+
}
return 0;
}
-SHELL_EXPORT_CMD(SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), Media, MediaCmdEntry, test freertos media driver);
\ No newline at end of file
+SHELL_EXPORT_CMD((SHELL_TYPE_CMD_MAIN), Media, MediaCmdEntry, test media driver);
\ No newline at end of file
diff --git a/example/peripheral/media/lvgl_demo/src/lv_demo_creat.c b/example/peripheral/media/lvgl_demo/src/lv_demo_creat.c
index d465403dc02986c94799d17c2d9c7a81d9ef503b..34ba434b0e54b7770c25b8c28bd347b34e8c3ae1 100644
--- a/example/peripheral/media/lvgl_demo/src/lv_demo_creat.c
+++ b/example/peripheral/media/lvgl_demo/src/lv_demo_creat.c
@@ -35,8 +35,6 @@
#include "lv_demo_creat.h"
#include "lv_demo_test.h"
#include "lv_port_disp.h"
-#include "fdcdp_multi_display.h"
-
#if LV_USE_DEMO_BENCHMARK
#include "lv_demo_benchmark.h"
@@ -49,7 +47,6 @@
#if LV_USE_DEMO_WIDGETS
#include "lv_demo_widgets.h"
#endif
-
/************************** Constant Definitions *****************************/
#define LVGL_HEART_TIMER_PERIOD (pdMS_TO_TICKS(1UL))
#define LVGL_CONTINUE_TIMER 10000000
@@ -60,9 +57,6 @@ static TaskHandle_t lvgl_init_task;
static TaskHandle_t init_task;
static TaskHandle_t hpd_task ;
-static disp_parm *disp_config;
-static InputParm *input_config;
-
extern void FFreeRTOSDispdEnableUpdate(void);
extern void FFreeRTOSDispdDisableUpdate(void);
/************************** Function Prototypes ******************************/
@@ -172,73 +166,30 @@ static void FFreeRTOSLVGLDemoTask(void)
}
}
-/**
- * @name: FFreeRTOSMediaInitTask
- * @msg: init the lvgl device
- * @param {void *} pvParameters is the parameters of demo
- * @return Null
- */
-static void FFreeRTOSMediaInitTask(void *pvParameters)
-{
- FASSERT(NULL != pvParameters);
- InputParm *input_config = (InputParm *)pvParameters ;
- FFreeRTOSMediaDeviceInit(input_config->channel, input_config->width, input_config->height, input_config->multi_mode, input_config->color_depth, input_config->refresh_rate);
- vTaskDelete(NULL);
-}
-/**
- * @name: FFreeRTOSMediaHpdTask
- * @msg: handle the hpd event
- * @param {void *} pvParameters is the parameters of demo
- * @return Null
- */
-static void FFreeRTOSMediaHpdTask(void *pvParameters)
-{
- FASSERT(NULL != pvParameters);
- InputParm *input_config = (InputParm *)pvParameters ;
- FFreeRTOSMediaHpdHandle(input_config->channel, input_config->width, input_config->height, input_config->multi_mode, input_config->color_depth, input_config->refresh_rate);
- vTaskDelete(NULL);
-}
-
-/**
- * @name: FFreeRTOSLVGLConfigTask
- * @msg: config the lvgl
- * @param {void *} pvParameters is the parameters of demo
- * @return Null
- */
-static void FFreeRTOSLVGLConfigTask(void *pvParameters)
-{
- FASSERT(NULL != pvParameters);
- InputParm *input_config = (InputParm *)pvParameters ;
- lv_init();
- disp_config = FDcDpMultiDisplayFrameBufferSet(input_config->channel, input_config->width, input_config->height, input_config->color_depth, input_config->multi_mode);
- FFreeRTOSPortInit(disp_config);
- vTaskDelete(NULL);
-}
/**
* @name: FFreeRTOSMediaInitCreate
* @msg: creat the media init task
- * @param {void *} args is the parameters of init function
* @return xReturn,pdPASS:success,others:creat failed
*/
-BaseType_t FFreeRTOSMediaInitCreate(void *args)
+BaseType_t FFreeRTOSMediaInitCreate(void)
{
BaseType_t xReturn = pdPASS; /* 定义一个创建信息返回值,默认为 pdPASS */
/* enter critical region */
taskENTER_CRITICAL();
/* Media init task */
- xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSMediaInitTask, /* 任务入口函数 */
- (const char *)"FFreeRTOSMediaInitTask", /* 任务名字 */
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSMediaDeviceInit, /* 任务入口函数 */
+ (const char *)"FFreeRTOSMediaDeviceInit", /* 任务名字 */
(uint16_t)1024, /* 任务栈大小 */
- (void *)args, /* 任务入口函数参数 */
+ NULL, /* 任务入口函数参数 */
(UBaseType_t)configMAX_PRIORITIES - 2, /* 任务的优先级 */
(TaskHandle_t *)&init_task); /* 任务控制 */
/* Hpd task control */
- xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSMediaHpdTask, /* 任务入口函数 */
- (const char *)"FFreeRTOSMediaHpdTask", /* 任务名字 */
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSMediaHpdHandle, /* 任务入口函数 */
+ (const char *)"FFreeRTOSMediaHpdHandle", /* 任务名字 */
(uint16_t)1024, /* 任务栈大小 */
- (void *)args, /* 任务入口函数参数 */
+ NULL, /* 任务入口函数参数 */
(UBaseType_t)configMAX_PRIORITIES - 1, /* 任务的优先级 */
(TaskHandle_t *)&hpd_task);
/* exit critical region */
@@ -252,7 +203,7 @@ BaseType_t FFreeRTOSMediaInitCreate(void *args)
* @msg: set the lvgl init task
* @return xReturn,pdPASS:success,others:creat failed
*/
-BaseType_t FFreeRTOSlVGLConfigCreate(void *args)
+BaseType_t FFreeRTOSlVGLConfigCreate(void )
{
BaseType_t xReturn = pdPASS; /* 定义一个创建信息返回值,默认为 pdPASS */
BaseType_t timer_started = pdPASS;
@@ -261,7 +212,7 @@ BaseType_t FFreeRTOSlVGLConfigCreate(void *args)
xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSLVGLConfigTask, /* 任务入口函数 */
(const char *)"FFreeRTOSLVGLConfigTask", /* 任务名字 */
(uint16_t)1024, /* 任务栈大小 */
- (void *)args, /* 任务入口函数参数 */
+ NULL, /* 任务入口函数参数 */
(UBaseType_t)configMAX_PRIORITIES - 3, /* 任务的优先级 */
(TaskHandle_t *)&lvgl_init_task); /* 任务控制 */
diff --git a/example/peripheral/media/lvgl_demo/src/lv_demo_test.c b/example/peripheral/media/lvgl_demo/src/lv_demo_test.c
index 30651019ddf6821f99225306039d461112702328..ae5074420bad5119be5d7a19ad03c60a94ca71e2 100644
--- a/example/peripheral/media/lvgl_demo/src/lv_demo_test.c
+++ b/example/peripheral/media/lvgl_demo/src/lv_demo_test.c
@@ -28,6 +28,7 @@
#include "FreeRTOS.h"
#include "fassert.h"
#include "finterrupt.h"
+#include "fparameters_comm.h"
#include "timers.h"
#include "task.h"
#include "fcpu_info.h"
@@ -39,7 +40,6 @@
#include "fdp.h"
#include "fdp_hw.h"
#include "fdc_hw.h"
-#include "fdcdp_multi_display.h"
#include "lv_conf.h"
#include "lv_port_disp.h"
@@ -47,12 +47,10 @@
#define FMEDIA_EVT_INTR(index) BIT(index)
#define FMEDIA_CHANNEL_0 0
#define FMEDIA_CHANNEL_1 1
-/**********************Macros (Inline Functions) Definitions *********************/
-
+static u8 *static_frame_buffer_address = (u8 *)0xa0000000 ;
static EventGroupHandle_t media_event = NULL;
-
-static FFreeRTOSMedia *os_media;
-
+static FFreeRTOSMedia os_media;
+/**********************Macros (Inline Functions) Definitions *********************/
static void FFreeRTOSMediaSendEvent(u32 evt_bits)
{
FASSERT(media_event);
@@ -201,27 +199,46 @@ static void FFreeRTOSMediaIrqAllEnable(FDcDp *instance_p)
/**
* @name: FFreeRTOSMediaDeviceInit
* @msg: enable the Dc and Dp
- * @param {u32} channel is the dc channel
- * @param {u32} width is the width
- * @param {u32} height is the height
- * @param {u32} multi_mode is multi display mode,0:clone,1:hor,2:ver
- * @param {u32} color_depth is the color depth
- * @param {u32} refresh_rate is the refresh rate of screen
* @return Null
*/
-void FFreeRTOSMediaDeviceInit(u32 channel, u32 width, u32 height, u32 multi_mode, u32 color_depth, u32 refresh_rate)
+void FFreeRTOSMediaDeviceInit(void)
{
- os_media = FFreeRTOSMediaHwInit(channel, width, height, multi_mode, color_depth, refresh_rate);
+ u32 index, start_index, end_index;
+
+ /*设置用户参数*/
+ u32 channel = 2;/* 0 or 1 or 2*/
+ if (channel == FDCDP_INSTANCE_NUM)
+ {
+ start_index = 0;
+ end_index = FDCDP_INSTANCE_NUM;
+ }
+ else
+ {
+ start_index = channel;
+ end_index = channel + 1;
+ }
+ for (index = start_index; index < end_index; index ++)
+ {
+ os_media.dcdp_ctrl.user_config[index].width = 640;
+ os_media.dcdp_ctrl.user_config[index].height = 480;
+ os_media.dcdp_ctrl.user_config[index].refresh_rate = 60;
+ os_media.dcdp_ctrl.user_config[index].color_depth = 32;
+ os_media.dcdp_ctrl.user_config[index].multi_mode = 0;
+ os_media.dcdp_ctrl.user_config[index].fb_phy = (uintptr)static_frame_buffer_address;
+ os_media.dcdp_ctrl.user_config[index].fb_virtual = (uintptr)static_frame_buffer_address ;/*当前例程虚拟地址和物理地址一致,实际需要根据需要进行映射*/
+ }
+ FFreeRTOSMedia *os_config = FFreeRTOSMediaHwInit(channel, &os_media);
FASSERT_MSG(NULL == media_event, "Event group exists.");
FASSERT_MSG((media_event = xEventGroupCreate()) != NULL, "Create event group failed.");
- FFreeRTOSMediaIrqSet(&os_media->dcdp_ctrl);
- FFreeRTOSMediaIrqAllEnable(&os_media->dcdp_ctrl);
+ FFreeRTOSMediaIrqSet(&os_config->dcdp_ctrl);
+ FFreeRTOSMediaIrqAllEnable(&os_config->dcdp_ctrl);
+ vTaskDelete(NULL);
}
/**
* @name: FFreeRTOSMediaChannelDeinit
- * @msg: deinit the media
- * @param {u32} id is the channel of dcdp
+ * @msg:: deinit the media
+ * @param {u32} id is the num of dcdp
* @return Null
*/
void FFreeRTOSMediaChannelDeinit(u32 id)
@@ -229,7 +246,7 @@ void FFreeRTOSMediaChannelDeinit(u32 id)
taskENTER_CRITICAL();
vEventGroupDelete(media_event);
media_event = NULL;
- FDcDpDeInitialize(&os_media->dcdp_ctrl, id);
+ FDcDpDeInitialize(&os_media.dcdp_ctrl, id);
taskEXIT_CRITICAL(); /* allow schedule after deinit */
return ;
}
@@ -237,52 +254,50 @@ void FFreeRTOSMediaChannelDeinit(u32 id)
/**
* @name: FFreeRTOSMediaHpdHandle
* @msg: handle the hpd event
- * @param {u32} channel is the dc channel
- * @param {u32} width is the width
- * @param {u32} height is the height
- * @param {u32} multi_mode is multi display mode,0:clone,1:hor,2:ver
- * @param {u32} color_depth is the color depth
- * @param {u32} refresh_rate is the refresh rate of screen
* @return Null
*/
-void FFreeRTOSMediaHpdHandle(u32 channel, u32 width, u32 height, u32 multi_mode, u32 color_depth, u32 refresh_rate)
+void FFreeRTOSMediaHpdHandle(void)
{
u32 index;
u32 ret = FMEDIA_DP_SUCCESS;
- u32 start_index;
- u32 end_index;//ensure the channel number
- if (channel == FDCDP_INSTANCE_NUM)
- {
- start_index = 0;
- end_index = channel;
- }
- else
- {
- start_index = channel;
- end_index = channel + 1;
- }
FFreeRTOSMediaWaitEvent(FMEDIA_EVT_INTR(FMEDIA_CHANNEL_0) | FMEDIA_EVT_INTR(FMEDIA_CHANNEL_1), portMAX_DELAY);
for (;;)
{
- for (index = start_index; index < end_index; index++)
+ for (index = 0; index < FDCDP_INSTANCE_NUM; index++)
{
- if (os_media->dcdp_ctrl.connect_flg[index] == 1)
+ if (os_media.dcdp_ctrl.connect_flg[index] == 1)
{
- ret = FFreeRTOSMediaHpdReInit(index, width, height, multi_mode, color_depth, refresh_rate);
+ ret = FDcDpHotPlugConnect(&os_media.dcdp_ctrl, index);
FFreeRTOSMediaClearEvent(media_event, FMEDIA_EVT_INTR(index));
if (ret == FMEDIA_DP_SUCCESS)
{
printf("Hpd task finish , reinit the dp success.\r\n");
}
- os_media->dcdp_ctrl.connect_flg[index] == 0;
+ os_media.dcdp_ctrl.connect_flg[index] == 0;
}
}
vTaskDelay(200);
}
}
+/**
+ * @name: FFreeRTOSLVGLConfigTask
+ * @msg: config the lvgl
+ * @return Null
+ */
+void FFreeRTOSLVGLConfigTask(void)
+{
+ u32 index;
+ lv_init();
+ FFreeRTOSPortInit();
+ for (index = 0; index < FDCDP_INSTANCE_NUM; index ++)
+ {
+ FMediaDispFramebuffer(&os_media.dcdp_ctrl);
+ }
+ vTaskDelete(NULL);
+}
diff --git a/example/peripheral/media/lvgl_indev/configs/e2000d_aarch32_demo_media.config b/example/peripheral/media/lvgl_indev/configs/e2000d_aarch32_demo_media.config
index f7b96da8d70c680cd6719f6ed8a0f5d904d4ac35..ff8d0991e80d87c95b91a60bed2e8d49d87930e4 100644
--- a/example/peripheral/media/lvgl_indev/configs/e2000d_aarch32_demo_media.config
+++ b/example/peripheral/media/lvgl_indev/configs/e2000d_aarch32_demo_media.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
CONFIG_ARM_FPU_ABI_SOFT=y
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -163,6 +161,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -202,7 +201,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -331,7 +331,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -655,10 +654,12 @@ CONFIG_CHERRY_USB_HOST_HID=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -678,4 +679,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/lvgl_indev/configs/e2000d_aarch64_demo_media.config b/example/peripheral/media/lvgl_indev/configs/e2000d_aarch64_demo_media.config
index 9ba3c018308972572d2eab3466e31bb173677868..6f32eaae6e8c6a471a1eb546f401de49653ad4d0 100644
--- a/example/peripheral/media/lvgl_indev/configs/e2000d_aarch64_demo_media.config
+++ b/example/peripheral/media/lvgl_indev/configs/e2000d_aarch64_demo_media.config
@@ -126,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -165,6 +163,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -204,7 +203,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -329,7 +329,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -653,10 +652,12 @@ CONFIG_CHERRY_USB_HOST_HID=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -676,4 +677,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/lvgl_indev/configs/e2000q_aarch32_demo_media.config b/example/peripheral/media/lvgl_indev/configs/e2000q_aarch32_demo_media.config
index 15217529ed976cf866507816b67b81eb43f86cd0..3aa4b0ae071855feaddc146d2a614f77ecd77743 100644
--- a/example/peripheral/media/lvgl_indev/configs/e2000q_aarch32_demo_media.config
+++ b/example/peripheral/media/lvgl_indev/configs/e2000q_aarch32_demo_media.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
CONFIG_ARM_FPU_ABI_SOFT=y
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +123,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +160,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +200,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -330,7 +330,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -654,10 +653,12 @@ CONFIG_CHERRY_USB_HOST_HID=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -677,4 +678,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/lvgl_indev/configs/e2000q_aarch64_demo_media.config b/example/peripheral/media/lvgl_indev/configs/e2000q_aarch64_demo_media.config
index ef42566a3563dba4e9ab21bbadf4be93b9514316..e7baacaec85bf2c5d776ce8e941a71fce21dc066 100644
--- a/example/peripheral/media/lvgl_indev/configs/e2000q_aarch64_demo_media.config
+++ b/example/peripheral/media/lvgl_indev/configs/e2000q_aarch64_demo_media.config
@@ -125,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -164,6 +162,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -203,7 +202,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -328,7 +328,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -652,10 +651,12 @@ CONFIG_CHERRY_USB_HOST_HID=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -675,4 +676,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/lvgl_indev/configs/phytiumpi_aarch32_firefly_media.config b/example/peripheral/media/lvgl_indev/configs/phytiumpi_aarch32_firefly_media.config
index 9af14bfa6767e3126272d429b30186e1645abdd7..6aa7630d12bc14da2bcb9d6242b05725ef02fa1e 100644
--- a/example/peripheral/media/lvgl_indev/configs/phytiumpi_aarch32_firefly_media.config
+++ b/example/peripheral/media/lvgl_indev/configs/phytiumpi_aarch32_firefly_media.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
CONFIG_ARM_FPU_ABI_SOFT=y
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +122,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +159,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +199,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -329,7 +329,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -653,10 +652,12 @@ CONFIG_CHERRY_USB_HOST_HID=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -676,4 +677,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/lvgl_indev/configs/phytiumpi_aarch64_firefly_media.config b/example/peripheral/media/lvgl_indev/configs/phytiumpi_aarch64_firefly_media.config
index b707c3f6e2a44aecd45c576ea58f4b96adf49157..ed230736e8cb352b6215d2d20aefb972663b1a19 100644
--- a/example/peripheral/media/lvgl_indev/configs/phytiumpi_aarch64_firefly_media.config
+++ b/example/peripheral/media/lvgl_indev/configs/phytiumpi_aarch64_firefly_media.config
@@ -124,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -163,6 +161,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -202,7 +201,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +327,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -651,10 +650,12 @@ CONFIG_CHERRY_USB_HOST_HID=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -674,4 +675,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/lvgl_indev/inc/lv_indev_creat.h b/example/peripheral/media/lvgl_indev/inc/lv_indev_creat.h
index 27ba5119c68dca84f303cc80847ebe0f302e9ba0..ab2249f6bd0b261a1d4463e44430306bc975eda7 100644
--- a/example/peripheral/media/lvgl_indev/inc/lv_indev_creat.h
+++ b/example/peripheral/media/lvgl_indev/inc/lv_indev_creat.h
@@ -40,16 +40,6 @@ extern "C" {
#include "lvgl-8.3/lvgl.h"
#endif
-typedef struct
-{
- u32 channel;
- u32 width;
- u32 height;
- u32 multi_mode;
- u32 color_depth;
- u32 refresh_rate;
-} InputParm;
-
/*creat the media demo init task*/
BaseType_t FFreeRTOSDemoCreate(void);
@@ -59,16 +49,14 @@ BaseType_t FFreeRTOSInitKbCreate(u32 id);
/*init the mouse*/
BaseType_t FFreeRTOSInitMsCreate(u32 id);
-/*creat the media init task*/
-BaseType_t FFreeRTOSMediaInitCreate(void *args);
-
-/*creat the lvgl init task*/
-BaseType_t FFreeRTOSlVGLConfigCreate(void *args);
-
/*list the usb device*/
BaseType_t FFreeRTOSListUsbDev(int argc, char *argv[]);
+/*init the media*/
+BaseType_t FFreeRTOSMediaInitCreate(void);
+/*set the lvgl init task*/
+BaseType_t FFreeRTOSlVGLConfigCreate(void);
#ifdef __cplusplus
} /*extern "C"*/
diff --git a/example/peripheral/media/lvgl_indev/inc/lv_indev_test.h b/example/peripheral/media/lvgl_indev/inc/lv_indev_test.h
index 3dc4cc114aa9a9a5e4755e98211bd1a4f52fd48c..c5666c1f7d235f21c62174f0ac1ffd4c36bfc0aa 100644
--- a/example/peripheral/media/lvgl_indev/inc/lv_indev_test.h
+++ b/example/peripheral/media/lvgl_indev/inc/lv_indev_test.h
@@ -40,10 +40,14 @@ void lv_demo_indev(void);
void FFreeRTOSMediaChannelDeinit(u32 id);
/*handle the hpd event*/
-void FFreeRTOSMediaHpdHandle(u32 channel, u32 width, u32 height, u32 multi_mode, u32 color_depth, u32 refresh_rate);
+void FFreeRTOSMediaHpdHandle(void);
/*init the media */
-void FFreeRTOSMediaDeviceInit(u32 channel, u32 width, u32 height, u32 multi_mode, u32 color_depth, u32 refresh_rate);
+void FFreeRTOSMediaDeviceInit(void);
+
+/*lvgl config*/
+void FFreeRTOSLVGLConfigTask(void);
+
#ifdef __cplusplus
} /*extern "C"*/
#endif
diff --git a/example/peripheral/media/lvgl_indev/sdkconfig b/example/peripheral/media/lvgl_indev/sdkconfig
index b707c3f6e2a44aecd45c576ea58f4b96adf49157..88bcbd2bb4317fff563897bf159bd6b2a41b3fa8 100644
--- a/example/peripheral/media/lvgl_indev/sdkconfig
+++ b/example/peripheral/media/lvgl_indev/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -45,13 +39,14 @@ CONFIG_USE_MMU=y
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
-# CONFIG_TARGET_E2000Q is not set
+# CONFIG_TARGET_PHYTIUMPI is not set
+CONFIG_TARGET_E2000Q=y
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
-CONFIG_SOC_NAME="phytiumpi"
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="q"
CONFIG_SOC_CORE_NUM=4
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
@@ -67,7 +62,7 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
+CONFIG_BOARD_NAME="demo"
# CONFIG_USE_SPI_IOPAD is not set
# CONFIG_USE_GPIO_IOPAD is not set
# CONFIG_USE_CAN_IOPAD is not set
@@ -77,7 +72,7 @@ CONFIG_BOARD_NAME="firefly"
# CONFIG_USE_TACHO_IOPAD is not set
# CONFIG_USE_UART_IOPAD is not set
# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
+CONFIG_E2000Q_DEMO_BOARD=y
#
# IO mux configuration when board start up
@@ -124,8 +119,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -157,12 +150,11 @@ CONFIG_USE_MEDIA=y
#
# Media Configuration
#
-CONFIG_ENABLE_FMEDIA=y
-# CONFIG_ENABLE_FDC_DP is not set
CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -202,7 +194,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +320,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -336,304 +328,6 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_SPIFFS is not set
# CONFIG_USE_LITTLE_FS is not set
CONFIG_USE_LVGL=y
-
-#
-# Lvgl configuration
-#
-CONFIG_LV_CONF_SKIP=y
-# CONFIG_LV_CONF_MINIMAL is not set
-
-#
-# Color settings
-#
-CONFIG_LV_COLOR_DEPTH_32=y
-# CONFIG_LV_COLOR_DEPTH_16 is not set
-# CONFIG_LV_COLOR_DEPTH_8 is not set
-# CONFIG_LV_COLOR_DEPTH_1 is not set
-CONFIG_LV_COLOR_DEPTH=32
-CONFIG_LV_COLOR_MIX_ROUND_OFS=0
-CONFIG_LV_COLOR_CHROMA_KEY_HEX=0x00FF00
-# end of Color settings
-
-#
-# Memory settings
-#
-# CONFIG_LV_MEM_CUSTOM is not set
-CONFIG_LV_MEM_SIZE_KILOBYTES=32
-CONFIG_LV_MEM_ADDR=0x0
-CONFIG_LV_MEM_BUF_MAX_NUM=16
-# CONFIG_LV_MEMCPY_MEMSET_STD is not set
-# end of Memory settings
-
-#
-# Hal settings
-#
-# CONFIG_LV_TICK_CUSTOM is not set
-CONFIG_LV_DPI_DEF=130
-# end of Hal settings
-
-#
-# Feature configuration
-#
-
-#
-# Drawing
-#
-CONFIG_LV_DRAW_COMPLEX=y
-CONFIG_LV_SHADOW_CACHE_SIZE=0
-CONFIG_LV_CIRCLE_CACHE_SIZE=4
-CONFIG_LV_LAYER_SIMPLE_BUF_SIZE=24576
-CONFIG_LV_IMG_CACHE_DEF_SIZE=0
-CONFIG_LV_GRADIENT_MAX_STOPS=2
-CONFIG_LV_GRAD_CACHE_DEF_SIZE=0
-# CONFIG_LV_DITHER_GRADIENT is not set
-CONFIG_LV_DISP_ROT_MAX_BUF=10240
-# end of Drawing
-
-#
-# Gpu
-#
-# CONFIG_LV_USE_GPU_ARM2D is not set
-# CONFIG_LV_USE_GPU_STM32_DMA2D is not set
-# CONFIG_LV_USE_GPU_SWM341_DMA2D is not set
-# CONFIG_LV_USE_GPU_NXP_PXP is not set
-# CONFIG_LV_USE_GPU_NXP_VG_LITE is not set
-# CONFIG_LV_USE_GPU_SDL is not set
-# end of Gpu
-
-#
-# Logging
-#
-# CONFIG_LV_USE_LOG is not set
-# end of Logging
-
-#
-# Asserts
-#
-CONFIG_LV_USE_ASSERT_NULL=y
-CONFIG_LV_USE_ASSERT_MALLOC=y
-# CONFIG_LV_USE_ASSERT_STYLE is not set
-# CONFIG_LV_USE_ASSERT_MEM_INTEGRITY is not set
-# CONFIG_LV_USE_ASSERT_OBJ is not set
-CONFIG_LV_ASSERT_HANDLER_INCLUDE="assert.h"
-# end of Asserts
-
-#
-# Others
-#
-# CONFIG_LV_USE_PERF_MONITOR is not set
-# CONFIG_LV_USE_MEM_MONITOR is not set
-# CONFIG_LV_USE_REFR_DEBUG is not set
-# CONFIG_LV_SPRINTF_CUSTOM is not set
-# CONFIG_LV_SPRINTF_USE_FLOAT is not set
-CONFIG_LV_USE_USER_DATA=y
-# CONFIG_LV_ENABLE_GC is not set
-# end of Others
-
-#
-# Compiler settings
-#
-# CONFIG_LV_BIG_ENDIAN_SYSTEM is not set
-CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE=1
-# CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM is not set
-# CONFIG_LV_USE_LARGE_COORD is not set
-# end of Compiler settings
-# end of Feature configuration
-
-#
-# Font usage
-#
-
-#
-# Enable built-in fonts
-#
-# CONFIG_LV_FONT_MONTSERRAT_8 is not set
-# CONFIG_LV_FONT_MONTSERRAT_10 is not set
-# CONFIG_LV_FONT_MONTSERRAT_12 is not set
-CONFIG_LV_FONT_MONTSERRAT_14=y
-# CONFIG_LV_FONT_MONTSERRAT_16 is not set
-# CONFIG_LV_FONT_MONTSERRAT_18 is not set
-# CONFIG_LV_FONT_MONTSERRAT_20 is not set
-# CONFIG_LV_FONT_MONTSERRAT_22 is not set
-# CONFIG_LV_FONT_MONTSERRAT_24 is not set
-# CONFIG_LV_FONT_MONTSERRAT_26 is not set
-# CONFIG_LV_FONT_MONTSERRAT_28 is not set
-# CONFIG_LV_FONT_MONTSERRAT_30 is not set
-# CONFIG_LV_FONT_MONTSERRAT_32 is not set
-# CONFIG_LV_FONT_MONTSERRAT_34 is not set
-# CONFIG_LV_FONT_MONTSERRAT_36 is not set
-# CONFIG_LV_FONT_MONTSERRAT_38 is not set
-# CONFIG_LV_FONT_MONTSERRAT_40 is not set
-# CONFIG_LV_FONT_MONTSERRAT_42 is not set
-# CONFIG_LV_FONT_MONTSERRAT_44 is not set
-# CONFIG_LV_FONT_MONTSERRAT_46 is not set
-# CONFIG_LV_FONT_MONTSERRAT_48 is not set
-# CONFIG_LV_FONT_MONTSERRAT_12_SUBPX is not set
-# CONFIG_LV_FONT_MONTSERRAT_28_COMPRESSED is not set
-# CONFIG_LV_FONT_DEJAVU_16_PERSIAN_HEBREW is not set
-# CONFIG_LV_FONT_SIMSUN_16_CJK is not set
-# CONFIG_LV_FONT_UNSCII_8 is not set
-# CONFIG_LV_FONT_UNSCII_16 is not set
-# end of Enable built-in fonts
-
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_8 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12 is not set
-CONFIG_LV_FONT_DEFAULT_MONTSERRAT_14=y
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_16 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_18 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_20 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_22 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_24 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_30 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_34 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_36 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_38 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_40 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_42 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_44 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_46 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_48 is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12_SUBPX is not set
-# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED is not set
-# CONFIG_LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW is not set
-# CONFIG_LV_FONT_DEFAULT_SIMSUN_16_CJK is not set
-# CONFIG_LV_FONT_DEFAULT_UNSCII_8 is not set
-# CONFIG_LV_FONT_DEFAULT_UNSCII_16 is not set
-# CONFIG_LV_FONT_FMT_TXT_LARGE is not set
-# CONFIG_LV_USE_FONT_COMPRESSED is not set
-# CONFIG_LV_USE_FONT_SUBPX is not set
-CONFIG_LV_USE_FONT_PLACEHOLDER=y
-# end of Font usage
-
-#
-# Text settings
-#
-CONFIG_LV_TXT_ENC_UTF8=y
-# CONFIG_LV_TXT_ENC_ASCII is not set
-CONFIG_LV_TXT_BREAK_CHARS=" ,.;:-_"
-CONFIG_LV_TXT_LINE_BREAK_LONG_LEN=0
-CONFIG_LV_TXT_COLOR_CMD="#"
-# CONFIG_LV_USE_BIDI is not set
-# CONFIG_LV_USE_ARABIC_PERSIAN_CHARS is not set
-# end of Text settings
-
-#
-# Widget usage
-#
-CONFIG_LV_USE_ARC=y
-CONFIG_LV_USE_BAR=y
-CONFIG_LV_USE_BTN=y
-CONFIG_LV_USE_BTNMATRIX=y
-CONFIG_LV_USE_CANVAS=y
-CONFIG_LV_USE_CHECKBOX=y
-CONFIG_LV_USE_DROPDOWN=y
-CONFIG_LV_USE_IMG=y
-CONFIG_LV_USE_LABEL=y
-CONFIG_LV_LABEL_TEXT_SELECTION=y
-CONFIG_LV_LABEL_LONG_TXT_HINT=y
-CONFIG_LV_USE_LINE=y
-CONFIG_LV_USE_ROLLER=y
-CONFIG_LV_ROLLER_INF_PAGES=7
-CONFIG_LV_USE_SLIDER=y
-CONFIG_LV_USE_SWITCH=y
-CONFIG_LV_USE_TEXTAREA=y
-CONFIG_LV_TEXTAREA_DEF_PWD_SHOW_TIME=1500
-CONFIG_LV_USE_TABLE=y
-# end of Widget usage
-
-#
-# Extra widgets
-#
-CONFIG_LV_USE_ANIMIMG=y
-CONFIG_LV_USE_CALENDAR=y
-# CONFIG_LV_CALENDAR_WEEK_STARTS_MONDAY is not set
-CONFIG_LV_USE_CALENDAR_HEADER_ARROW=y
-CONFIG_LV_USE_CALENDAR_HEADER_DROPDOWN=y
-CONFIG_LV_USE_CHART=y
-CONFIG_LV_USE_COLORWHEEL=y
-CONFIG_LV_USE_IMGBTN=y
-CONFIG_LV_USE_KEYBOARD=y
-CONFIG_LV_USE_LED=y
-CONFIG_LV_USE_LIST=y
-CONFIG_LV_USE_MENU=y
-CONFIG_LV_USE_METER=y
-CONFIG_LV_USE_MSGBOX=y
-CONFIG_LV_USE_SPAN=y
-CONFIG_LV_SPAN_SNIPPET_STACK_SIZE=64
-CONFIG_LV_USE_SPINBOX=y
-CONFIG_LV_USE_SPINNER=y
-CONFIG_LV_USE_TABVIEW=y
-CONFIG_LV_USE_TILEVIEW=y
-CONFIG_LV_USE_WIN=y
-# end of Extra widgets
-
-#
-# Themes
-#
-CONFIG_LV_USE_THEME_DEFAULT=y
-# CONFIG_LV_THEME_DEFAULT_DARK is not set
-CONFIG_LV_THEME_DEFAULT_GROW=y
-CONFIG_LV_THEME_DEFAULT_TRANSITION_TIME=80
-CONFIG_LV_USE_THEME_BASIC=y
-# CONFIG_LV_USE_THEME_MONO is not set
-# end of Themes
-
-#
-# Layouts
-#
-CONFIG_LV_USE_FLEX=y
-CONFIG_LV_USE_GRID=y
-# end of Layouts
-
-#
-# 3rd party libraries
-#
-# CONFIG_LV_USE_FS_STDIO is not set
-# CONFIG_LV_USE_FS_POSIX is not set
-# CONFIG_LV_USE_FS_WIN32 is not set
-# CONFIG_LV_USE_FS_FATFS is not set
-# CONFIG_LV_USE_PNG is not set
-# CONFIG_LV_USE_BMP is not set
-# CONFIG_LV_USE_SJPG is not set
-# CONFIG_LV_USE_GIF is not set
-# CONFIG_LV_USE_QRCODE is not set
-# CONFIG_LV_USE_FREETYPE is not set
-# CONFIG_LV_USE_RLOTTIE is not set
-# CONFIG_LV_USE_FFMPEG is not set
-# end of 3rd party libraries
-
-#
-# Others
-#
-CONFIG_LV_USE_SNAPSHOT=y
-# CONFIG_LV_USE_MONKEY is not set
-# CONFIG_LV_USE_GRIDNAV is not set
-# CONFIG_LV_USE_FRAGMENT is not set
-# CONFIG_LV_USE_IMGFONT is not set
-# CONFIG_LV_USE_MSG is not set
-# CONFIG_LV_USE_IME_PINYIN is not set
-# end of Others
-
-#
-# Examples
-#
-CONFIG_LV_BUILD_EXAMPLES=y
-# end of Examples
-
-#
-# Demos
-#
-# CONFIG_LV_USE_DEMO_WIDGETS is not set
-# CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER is not set
-# CONFIG_LV_USE_DEMO_BENCHMARK is not set
-# CONFIG_LV_USE_DEMO_STRESS is not set
-# CONFIG_LV_USE_DEMO_MUSIC is not set
-# end of Demos
-# end of Lvgl configuration
-
# CONFIG_USE_FREEMODBUS is not set
CONFIG_USE_CHERRY_USB=y
@@ -651,10 +345,13 @@ CONFIG_CHERRY_USB_HOST_HID=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -674,4 +371,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/lvgl_indev/sdkconfig.h b/example/peripheral/media/lvgl_indev/sdkconfig.h
index 90c00a04c17b7582b5c4013dfe6a535ff084c4dd..075236bf42a42cfe4b964a04bfd3909fcd144884 100644
--- a/example/peripheral/media/lvgl_indev/sdkconfig.h
+++ b/example/peripheral/media/lvgl_indev/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -41,13 +37,14 @@
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
-/* CONFIG_TARGET_E2000Q is not set */
+/* CONFIG_TARGET_PHYTIUMPI is not set */
+#define CONFIG_TARGET_E2000Q
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
+#define CONFIG_SOC_NAME "e2000"
+#define CONFIG_TARGET_TYPE_NAME "q"
#define CONFIG_SOC_CORE_NUM 4
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
@@ -62,7 +59,7 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
+#define CONFIG_BOARD_NAME "demo"
/* CONFIG_USE_SPI_IOPAD is not set */
/* CONFIG_USE_GPIO_IOPAD is not set */
/* CONFIG_USE_CAN_IOPAD is not set */
@@ -72,7 +69,7 @@
/* CONFIG_USE_TACHO_IOPAD is not set */
/* CONFIG_USE_UART_IOPAD is not set */
/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
+#define CONFIG_E2000Q_DEMO_BOARD
/* IO mux configuration when board start up */
@@ -113,8 +110,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -143,11 +138,10 @@
/* Media Configuration */
-#define CONFIG_ENABLE_FMEDIA
-/* CONFIG_ENABLE_FDC_DP is not set */
#define CONFIG_ENABLE_FDC_DP_USE_LIB
/* end of Media Configuration */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -183,7 +177,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -287,7 +282,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -296,278 +290,6 @@
/* CONFIG_USE_SPIFFS is not set */
/* CONFIG_USE_LITTLE_FS is not set */
#define CONFIG_USE_LVGL
-
-/* Lvgl configuration */
-
-#define CONFIG_LV_CONF_SKIP
-/* CONFIG_LV_CONF_MINIMAL is not set */
-
-/* Color settings */
-
-#define CONFIG_LV_COLOR_DEPTH_32
-/* CONFIG_LV_COLOR_DEPTH_16 is not set */
-/* CONFIG_LV_COLOR_DEPTH_8 is not set */
-/* CONFIG_LV_COLOR_DEPTH_1 is not set */
-#define CONFIG_LV_COLOR_DEPTH 32
-#define CONFIG_LV_COLOR_MIX_ROUND_OFS 0
-#define CONFIG_LV_COLOR_CHROMA_KEY_HEX 0x00FF00
-/* end of Color settings */
-
-/* Memory settings */
-
-/* CONFIG_LV_MEM_CUSTOM is not set */
-#define CONFIG_LV_MEM_SIZE_KILOBYTES 32
-#define CONFIG_LV_MEM_ADDR 0x0
-#define CONFIG_LV_MEM_BUF_MAX_NUM 16
-/* CONFIG_LV_MEMCPY_MEMSET_STD is not set */
-/* end of Memory settings */
-
-/* Hal settings */
-
-/* CONFIG_LV_TICK_CUSTOM is not set */
-#define CONFIG_LV_DPI_DEF 130
-/* end of Hal settings */
-
-/* Feature configuration */
-
-/* Drawing */
-
-#define CONFIG_LV_DRAW_COMPLEX
-#define CONFIG_LV_SHADOW_CACHE_SIZE 0
-#define CONFIG_LV_CIRCLE_CACHE_SIZE 4
-#define CONFIG_LV_LAYER_SIMPLE_BUF_SIZE 24576
-#define CONFIG_LV_IMG_CACHE_DEF_SIZE 0
-#define CONFIG_LV_GRADIENT_MAX_STOPS 2
-#define CONFIG_LV_GRAD_CACHE_DEF_SIZE 0
-/* CONFIG_LV_DITHER_GRADIENT is not set */
-#define CONFIG_LV_DISP_ROT_MAX_BUF 10240
-/* end of Drawing */
-
-/* Gpu */
-
-/* CONFIG_LV_USE_GPU_ARM2D is not set */
-/* CONFIG_LV_USE_GPU_STM32_DMA2D is not set */
-/* CONFIG_LV_USE_GPU_SWM341_DMA2D is not set */
-/* CONFIG_LV_USE_GPU_NXP_PXP is not set */
-/* CONFIG_LV_USE_GPU_NXP_VG_LITE is not set */
-/* CONFIG_LV_USE_GPU_SDL is not set */
-/* end of Gpu */
-
-/* Logging */
-
-/* CONFIG_LV_USE_LOG is not set */
-/* end of Logging */
-
-/* Asserts */
-
-#define CONFIG_LV_USE_ASSERT_NULL
-#define CONFIG_LV_USE_ASSERT_MALLOC
-/* CONFIG_LV_USE_ASSERT_STYLE is not set */
-/* CONFIG_LV_USE_ASSERT_MEM_INTEGRITY is not set */
-/* CONFIG_LV_USE_ASSERT_OBJ is not set */
-#define CONFIG_LV_ASSERT_HANDLER_INCLUDE "assert.h"
-/* end of Asserts */
-
-/* Others */
-
-/* CONFIG_LV_USE_PERF_MONITOR is not set */
-/* CONFIG_LV_USE_MEM_MONITOR is not set */
-/* CONFIG_LV_USE_REFR_DEBUG is not set */
-/* CONFIG_LV_SPRINTF_CUSTOM is not set */
-/* CONFIG_LV_SPRINTF_USE_FLOAT is not set */
-#define CONFIG_LV_USE_USER_DATA
-/* CONFIG_LV_ENABLE_GC is not set */
-/* end of Others */
-
-/* Compiler settings */
-
-/* CONFIG_LV_BIG_ENDIAN_SYSTEM is not set */
-#define CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE 1
-/* CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM is not set */
-/* CONFIG_LV_USE_LARGE_COORD is not set */
-/* end of Compiler settings */
-/* end of Feature configuration */
-
-/* Font usage */
-
-/* Enable built-in fonts */
-
-/* CONFIG_LV_FONT_MONTSERRAT_8 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_10 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_12 is not set */
-#define CONFIG_LV_FONT_MONTSERRAT_14
-/* CONFIG_LV_FONT_MONTSERRAT_16 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_18 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_20 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_22 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_24 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_26 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_28 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_30 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_32 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_34 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_36 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_38 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_40 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_42 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_44 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_46 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_48 is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_12_SUBPX is not set */
-/* CONFIG_LV_FONT_MONTSERRAT_28_COMPRESSED is not set */
-/* CONFIG_LV_FONT_DEJAVU_16_PERSIAN_HEBREW is not set */
-/* CONFIG_LV_FONT_SIMSUN_16_CJK is not set */
-/* CONFIG_LV_FONT_UNSCII_8 is not set */
-/* CONFIG_LV_FONT_UNSCII_16 is not set */
-/* end of Enable built-in fonts */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_8 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12 is not set */
-#define CONFIG_LV_FONT_DEFAULT_MONTSERRAT_14
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_16 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_18 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_20 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_22 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_24 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_30 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_34 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_36 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_38 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_40 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_42 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_44 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_46 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_48 is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12_SUBPX is not set */
-/* CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED is not set */
-/* CONFIG_LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW is not set */
-/* CONFIG_LV_FONT_DEFAULT_SIMSUN_16_CJK is not set */
-/* CONFIG_LV_FONT_DEFAULT_UNSCII_8 is not set */
-/* CONFIG_LV_FONT_DEFAULT_UNSCII_16 is not set */
-/* CONFIG_LV_FONT_FMT_TXT_LARGE is not set */
-/* CONFIG_LV_USE_FONT_COMPRESSED is not set */
-/* CONFIG_LV_USE_FONT_SUBPX is not set */
-#define CONFIG_LV_USE_FONT_PLACEHOLDER
-/* end of Font usage */
-
-/* Text settings */
-
-#define CONFIG_LV_TXT_ENC_UTF8
-/* CONFIG_LV_TXT_ENC_ASCII is not set */
-#define CONFIG_LV_TXT_BREAK_CHARS " ,.;:-_"
-#define CONFIG_LV_TXT_LINE_BREAK_LONG_LEN 0
-#define CONFIG_LV_TXT_COLOR_CMD "#"
-/* CONFIG_LV_USE_BIDI is not set */
-/* CONFIG_LV_USE_ARABIC_PERSIAN_CHARS is not set */
-/* end of Text settings */
-
-/* Widget usage */
-
-#define CONFIG_LV_USE_ARC
-#define CONFIG_LV_USE_BAR
-#define CONFIG_LV_USE_BTN
-#define CONFIG_LV_USE_BTNMATRIX
-#define CONFIG_LV_USE_CANVAS
-#define CONFIG_LV_USE_CHECKBOX
-#define CONFIG_LV_USE_DROPDOWN
-#define CONFIG_LV_USE_IMG
-#define CONFIG_LV_USE_LABEL
-#define CONFIG_LV_LABEL_TEXT_SELECTION
-#define CONFIG_LV_LABEL_LONG_TXT_HINT
-#define CONFIG_LV_USE_LINE
-#define CONFIG_LV_USE_ROLLER
-#define CONFIG_LV_ROLLER_INF_PAGES 7
-#define CONFIG_LV_USE_SLIDER
-#define CONFIG_LV_USE_SWITCH
-#define CONFIG_LV_USE_TEXTAREA
-#define CONFIG_LV_TEXTAREA_DEF_PWD_SHOW_TIME 1500
-#define CONFIG_LV_USE_TABLE
-/* end of Widget usage */
-
-/* Extra widgets */
-
-#define CONFIG_LV_USE_ANIMIMG
-#define CONFIG_LV_USE_CALENDAR
-/* CONFIG_LV_CALENDAR_WEEK_STARTS_MONDAY is not set */
-#define CONFIG_LV_USE_CALENDAR_HEADER_ARROW
-#define CONFIG_LV_USE_CALENDAR_HEADER_DROPDOWN
-#define CONFIG_LV_USE_CHART
-#define CONFIG_LV_USE_COLORWHEEL
-#define CONFIG_LV_USE_IMGBTN
-#define CONFIG_LV_USE_KEYBOARD
-#define CONFIG_LV_USE_LED
-#define CONFIG_LV_USE_LIST
-#define CONFIG_LV_USE_MENU
-#define CONFIG_LV_USE_METER
-#define CONFIG_LV_USE_MSGBOX
-#define CONFIG_LV_USE_SPAN
-#define CONFIG_LV_SPAN_SNIPPET_STACK_SIZE 64
-#define CONFIG_LV_USE_SPINBOX
-#define CONFIG_LV_USE_SPINNER
-#define CONFIG_LV_USE_TABVIEW
-#define CONFIG_LV_USE_TILEVIEW
-#define CONFIG_LV_USE_WIN
-/* end of Extra widgets */
-
-/* Themes */
-
-#define CONFIG_LV_USE_THEME_DEFAULT
-/* CONFIG_LV_THEME_DEFAULT_DARK is not set */
-#define CONFIG_LV_THEME_DEFAULT_GROW
-#define CONFIG_LV_THEME_DEFAULT_TRANSITION_TIME 80
-#define CONFIG_LV_USE_THEME_BASIC
-/* CONFIG_LV_USE_THEME_MONO is not set */
-/* end of Themes */
-
-/* Layouts */
-
-#define CONFIG_LV_USE_FLEX
-#define CONFIG_LV_USE_GRID
-/* end of Layouts */
-
-/* 3rd party libraries */
-
-/* CONFIG_LV_USE_FS_STDIO is not set */
-/* CONFIG_LV_USE_FS_POSIX is not set */
-/* CONFIG_LV_USE_FS_WIN32 is not set */
-/* CONFIG_LV_USE_FS_FATFS is not set */
-/* CONFIG_LV_USE_PNG is not set */
-/* CONFIG_LV_USE_BMP is not set */
-/* CONFIG_LV_USE_SJPG is not set */
-/* CONFIG_LV_USE_GIF is not set */
-/* CONFIG_LV_USE_QRCODE is not set */
-/* CONFIG_LV_USE_FREETYPE is not set */
-/* CONFIG_LV_USE_RLOTTIE is not set */
-/* CONFIG_LV_USE_FFMPEG is not set */
-/* end of 3rd party libraries */
-
-/* Others */
-
-#define CONFIG_LV_USE_SNAPSHOT
-/* CONFIG_LV_USE_MONKEY is not set */
-/* CONFIG_LV_USE_GRIDNAV is not set */
-/* CONFIG_LV_USE_FRAGMENT is not set */
-/* CONFIG_LV_USE_IMGFONT is not set */
-/* CONFIG_LV_USE_MSG is not set */
-/* CONFIG_LV_USE_IME_PINYIN is not set */
-/* end of Others */
-
-/* Examples */
-
-#define CONFIG_LV_BUILD_EXAMPLES
-/* end of Examples */
-
-/* Demos */
-
-/* CONFIG_LV_USE_DEMO_WIDGETS is not set */
-/* CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER is not set */
-/* CONFIG_LV_USE_DEMO_BENCHMARK is not set */
-/* CONFIG_LV_USE_DEMO_STRESS is not set */
-/* CONFIG_LV_USE_DEMO_MUSIC is not set */
-/* end of Demos */
-/* end of Lvgl configuration */
/* CONFIG_USE_FREEMODBUS is not set */
#define CONFIG_USE_CHERRY_USB
@@ -584,9 +306,11 @@
/* CONFIG_CHERRY_USB_HOST_CDC is not set */
/* CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set */
/* end of CherryUSB Configuration */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -606,6 +330,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/peripheral/media/lvgl_indev/src/cmd.c b/example/peripheral/media/lvgl_indev/src/cmd.c
index 45c2528736d7ba8bf15dc7c5873ecc7808b37784..2e4690cf38e8f081dc5fa81ab0b5274faad3f49c 100644
--- a/example/peripheral/media/lvgl_indev/src/cmd.c
+++ b/example/peripheral/media/lvgl_indev/src/cmd.c
@@ -39,18 +39,11 @@
#include "lv_indev_creat.h"
#include "lv_indev_test.h"
-static InputParm input_config;
-
static void FFreeRTOSMediaCmdUsage(void)
{
printf("Usage:\r\n");
- printf(" Media init 0/1/2, channel 0 ,channel 1 , channel 0 and channel 1 \r\n");
- printf(" -- the resolution of width\r\n");
- printf(" -- the resolution of height\r\n");
- printf(" -- the sigle screen or multi-display \r\n");
- printf(" -- the color_depth of screen ,default color_depth is 32\r\n");
- printf(" -- the refresh_rate of screen ,default refresh_rate is 60\r\n");
+ printf(" Media init \r\n");
+ printf(" -- init the dp \r\n");;
printf(" Media lvgl-init \r\n");
printf(" -- init the lvgl and set the para for demo\r\n");
printf(" Media init-kb \r\n");
@@ -76,34 +69,13 @@ static int MediaCmdEntry(int argc, char *argv[])
}
if (!strcmp(argv[1], "init"))
{
- if (argc >= 3)
- {
- input_config.channel = (u32)simple_strtoul(argv[2], NULL, 10);
- if (input_config.channel > FDCDP_INSTANCE_NUM)
+ BaseType_t task_ret = FFreeRTOSMediaInitCreate();
+
+ if (pdPASS != task_ret)
{
- printf("Please insert the correct num,such as 0,1 or 2 \r\n");
+ return -2;
}
- input_config.width = (u32)simple_strtoul(argv[3], NULL, 10);
- input_config.height = (u32)simple_strtoul(argv[4], NULL, 10);
- input_config.multi_mode = (u32)simple_strtoul(argv[5], NULL, 10);
- input_config.color_depth = (u32)simple_strtoul(argv[6], NULL, 10);
- input_config.refresh_rate = (u32)simple_strtoul(argv[7], NULL, 10);
- }
- else
- {
- input_config.channel = 0;
- input_config.width = 1024;
- input_config.height = 768;
- input_config.multi_mode = 0;
- input_config.color_depth = 32;
- input_config.refresh_rate = 60;
- }
- BaseType_t task_ret = FFreeRTOSMediaInitCreate(&input_config);
- if (pdPASS != task_ret)
- {
- return -2;
- }
- inited = TRUE;
+ inited = TRUE;
}
if (!strcmp(argv[1], "lvgl-init"))
{
@@ -112,7 +84,7 @@ static int MediaCmdEntry(int argc, char *argv[])
printf("please ensure the media has been inited \r\n");
return -2;
}
- BaseType_t task_ret = FFreeRTOSlVGLConfigCreate(&input_config);
+ BaseType_t task_ret = FFreeRTOSlVGLConfigCreate();
if (pdPASS != task_ret)
{
diff --git a/example/peripheral/media/lvgl_indev/src/lv_indev_creat.c b/example/peripheral/media/lvgl_indev/src/lv_indev_creat.c
index bcf52784278a1e66145a9edba5545f5e0cbdaa0f..40be722f14ca2a8abf5679002b5f2b76f0e6c202 100644
--- a/example/peripheral/media/lvgl_indev/src/lv_indev_creat.c
+++ b/example/peripheral/media/lvgl_indev/src/lv_indev_creat.c
@@ -40,8 +40,7 @@
#include "usbh_core.h"
#include "usbh_hid.h"
-
-
+/************************** Variable Definitions *****************************/
#define LVGL_CONTINUE_TIMER 10000000
#define LVGL_HEART_TIMER_PERIOD (pdMS_TO_TICKS(1UL))
@@ -53,11 +52,7 @@ static TaskHandle_t init_ms_task;
static TaskHandle_t init_task;
static TaskHandle_t lvgl_init_task;
static TaskHandle_t hpd_task ;
-
-static InputParm *input_config;
-static disp_parm *disp_config;
-
-
+/************************** functions Definitions *****************************/
static void LvglHeartTimerCallback(TimerHandle_t xTimer)
{
lv_tick_inc(1);
@@ -77,44 +72,6 @@ static void mouseinit(void *pvParameters)
vTaskDelete(NULL);
}
-static void FFreeRTOSMediaInitTask(void *pvParameters)
-{
- FASSERT(NULL != pvParameters);
- InputParm *input_config = (InputParm *)pvParameters ;
- FFreeRTOSMediaDeviceInit(input_config->channel, input_config->width, input_config->height, input_config->multi_mode, input_config->color_depth, input_config->refresh_rate);
- vTaskDelete(NULL);
-}
-
-/**
- * @name: FFreeRTOSLVGLConfigTask
- * @msg: config the lvgl
- * @param {void *} pvParameters is the parameters of demo
- * @return Null
- */
-static void FFreeRTOSLVGLConfigTask(void *pvParameters)
-{
- FASSERT(NULL != pvParameters);
- InputParm *input_config = (InputParm *)pvParameters ;
- lv_init();
- disp_config = FDcDpMultiDisplayFrameBufferSet(input_config->channel, input_config->width, input_config->height, input_config->color_depth, input_config->multi_mode);
- FFreeRTOSPortInit(disp_config);
- vTaskDelete(NULL);
-}
-
-/**
- * @name: FFreeRTOSMediaHpdTask
- * @msg: handle the hpd event
- * @param {void *} pvParameters is the parameters of demo
- * @return Null
- */
-static void FFreeRTOSMediaHpdTask(void *pvParameters)
-{
- FASSERT(NULL != pvParameters);
- InputParm *input_config = (InputParm *)pvParameters ;
- FFreeRTOSMediaHpdHandle(input_config->channel, input_config->width, input_config->height, input_config->multi_mode, input_config->color_depth, input_config->refresh_rate);
- vTaskDelete(NULL);
-}
-
static void FFreeRTOSLVGLDemoTask(void *args)
{
lv_demo_indev();
@@ -177,25 +134,32 @@ BaseType_t FFreeRTOSInitMsCreate(u32 id)
return xReturn;
}
-BaseType_t FFreeRTOSMediaInitCreate(void *args)
+/**
+ * @name: FFreeRTOSMediaInitCreate
+ * @msg: set the media init task
+ * @return xReturn,pdPASS:success,others:creat failed
+ */
+BaseType_t FFreeRTOSMediaInitCreate(void )
{
BaseType_t xReturn = pdPASS; /* 定义一个创建信息返回值,默认为 pdPASS */
/* enter critical region */
taskENTER_CRITICAL();
/* Media init task */
- xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSMediaInitTask, /* 任务入口函数 */
- (const char *)"FFreeRTOSMediaInitTask", /* 任务名字 */
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSMediaDeviceInit, /* 任务入口函数 */
+ (const char *)"FFreeRTOSMediaDeviceInit", /* 任务名字 */
(uint16_t)1024, /* 任务栈大小 */
- (void *)args, /* 任务入口函数参数 */
+ NULL, /* 任务入口函数参数 */
(UBaseType_t)configMAX_PRIORITIES - 2, /* 任务的优先级 */
(TaskHandle_t *)&init_task); /* 任务控制 */
/* Hpd task control */
- xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSMediaHpdTask, /* 任务入口函数 */
- (const char *)"FFreeRTOSMediaHpdTask", /* 任务名字 */
+ xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSMediaHpdHandle, /* 任务入口函数 */
+ (const char *)"FFreeRTOSMediaHpdHandle", /* 任务名字 */
(uint16_t)1024, /* 任务栈大小 */
- (void *)args, /* 任务入口函数参数 */
+ NULL, /* 任务入口函数参数 */
(UBaseType_t)configMAX_PRIORITIES - 1, /* 任务的优先级 */
(TaskHandle_t *)&hpd_task);
+ /* exit critical region */
+ taskEXIT_CRITICAL();
return xReturn;
}
@@ -204,7 +168,7 @@ BaseType_t FFreeRTOSMediaInitCreate(void *args)
* @msg: set the lvgl init task
* @return xReturn,pdPASS:success,others:creat failed
*/
-BaseType_t FFreeRTOSlVGLConfigCreate(void *args)
+BaseType_t FFreeRTOSlVGLConfigCreate(void)
{
BaseType_t xReturn = pdPASS; /* 定义一个创建信息返回值,默认为 pdPASS */
BaseType_t timer_started = pdPASS;
@@ -213,7 +177,7 @@ BaseType_t FFreeRTOSlVGLConfigCreate(void *args)
xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSLVGLConfigTask, /* 任务入口函数 */
(const char *)"FFreeRTOSLVGLConfigTask", /* 任务名字 */
(uint16_t)1024, /* 任务栈大小 */
- (void *)args, /* 任务入口函数参数 */
+ NULL, /* 任务入口函数参数 */
(UBaseType_t)configMAX_PRIORITIES - 3, /* 任务的优先级 */
(TaskHandle_t *)&lvgl_init_task); /* 任务控制 */
@@ -223,7 +187,11 @@ BaseType_t FFreeRTOSlVGLConfigCreate(void *args)
return xReturn;
}
-
+/**
+ * @name: FFreeRTOSDemoCreate
+ * @msg: creat the lvgl demo task
+ * @return xReturn,pdPASS:success,others:creat failed
+ */
BaseType_t FFreeRTOSDemoCreate(void)
{
BaseType_t xReturn = pdPASS; /* 定义一个创建信息返回值,默认为 pdPASS */
diff --git a/example/peripheral/media/lvgl_indev/src/lv_indev_test.c b/example/peripheral/media/lvgl_indev/src/lv_indev_test.c
index 01168af086d7a8700489ef83f419b18b8438e91d..ce10e1924f2b21204f1805c5eb6ac0a0eb192b43 100644
--- a/example/peripheral/media/lvgl_indev/src/lv_indev_test.c
+++ b/example/peripheral/media/lvgl_indev/src/lv_indev_test.c
@@ -13,7 +13,7 @@
*
* FilePath: lv_indev_test.c
* Created Date: 2023-07-06 14:36:43
- * Last Modified: 2023-07-07 18:38:45
+ * Last Modified: 2023-11-02 10:53:32
* Description: This file is for config the test
*
* Modify History:
@@ -30,15 +30,14 @@
#include "timers.h"
#include "fassert.h"
#include "fcpu_info.h"
+#include "fparameters_comm.h"
#include "fdcdp.h"
#include "fdc.h"
#include "fdp.h"
#include "fdp_hw.h"
#include "fdc_hw.h"
-#include "fdcdp_multi_display.h"
#include "fmedia_os.h"
-#include "fdcdp_multi_display.h"
#include "lv_indev_port.h"
#include "lv_port_disp.h"
@@ -48,10 +47,11 @@
#define FMEDIA_CHANNEL_0 0
#define FMEDIA_CHANNEL_1 1
-static FFreeRTOSMedia *os_media;
+static FFreeRTOSMedia os_media;
static EventGroupHandle_t media_event = NULL;
-
+static u8 *static_frame_buffer_address = (u8 *)0xa0000000 ;
+/************************** functions Definitions *****************************/
static void FFreeRTOSMediaSendEvent(u32 evt_bits)
{
FASSERT(media_event);
@@ -86,7 +86,6 @@ static boolean FFreeRTOSMediaClearEvent(EventGroupHandle_t pvEventGroup, const u
return TRUE;
}
-
/**
* @name: FFreeRTOSMediaHpdConnectCallback
* @msg: the hpd connect event
@@ -105,7 +104,6 @@ static void FFreeRTOSMediaHpdConnectCallback(void *args, u32 index)
}
-
/**
* @name: FFreeRTOSMediaHpdBreakCallback
* @msg: the hpd disconnect event
@@ -202,21 +200,40 @@ static void FFreeRTOSMediaIrqAllEnable(FDcDp *instance_p)
/**
* @name: FFreeRTOSMediaDeviceInit
* @msg: enable the Dc and Dp
- * @param {u32} channel is the dc channel
- * @param {u32} width is the width
- * @param {u32} height is the height
- * @param {u32} multi_mode is multi display mode,0:clone,1:hor,2:ver
- * @param {u32} color_depth is the color depth
- * @param {u32} refresh_rate is the refresh rate of screen
* @return Null
*/
-void FFreeRTOSMediaDeviceInit(u32 channel, u32 width, u32 height, u32 multi_mode, u32 color_depth, u32 refresh_rate)
+void FFreeRTOSMediaDeviceInit(void)
{
- os_media = FFreeRTOSMediaHwInit(channel, width, height, multi_mode, color_depth, refresh_rate);
+ u32 index, start_index, end_index;
+
+ /*设置用户参数*/
+ u32 channel = 2;/* 0 or 1 or 2*/
+ if (channel == FDCDP_INSTANCE_NUM)
+ {
+ start_index = 0;
+ end_index = FDCDP_INSTANCE_NUM;
+ }
+ else
+ {
+ start_index = channel;
+ end_index = channel + 1;
+ }
+ for (index = start_index; index < end_index; index ++)
+ {
+ os_media.dcdp_ctrl.user_config[index].width = 640;
+ os_media.dcdp_ctrl.user_config[index].height = 480;
+ os_media.dcdp_ctrl.user_config[index].refresh_rate = 60;
+ os_media.dcdp_ctrl.user_config[index].color_depth = 32;
+ os_media.dcdp_ctrl.user_config[index].multi_mode = 0;
+ os_media.dcdp_ctrl.user_config[index].fb_phy = (uintptr)static_frame_buffer_address;
+ os_media.dcdp_ctrl.user_config[index].fb_virtual = (uintptr)static_frame_buffer_address ;/*当前例程虚拟地址和物理地址一致,实际需要根据需要进行映射*/
+ }
+ FFreeRTOSMedia *os_config = FFreeRTOSMediaHwInit(channel, &os_media);
FASSERT_MSG(NULL == media_event, "Event group exists.");
FASSERT_MSG((media_event = xEventGroupCreate()) != NULL, "Create event group failed.");
- FFreeRTOSMediaIrqSet(&os_media->dcdp_ctrl);
- FFreeRTOSMediaIrqAllEnable(&os_media->dcdp_ctrl);
+ FFreeRTOSMediaIrqSet(&os_config->dcdp_ctrl);
+ FFreeRTOSMediaIrqAllEnable(&os_config->dcdp_ctrl);
+ vTaskDelete(NULL);
}
/**
@@ -230,7 +247,7 @@ void FFreeRTOSMediaChannelDeinit(u32 id)
taskENTER_CRITICAL();
vEventGroupDelete(media_event);
media_event = NULL;
- FDcDpDeInitialize(&os_media->dcdp_ctrl, id);
+ FDcDpDeInitialize(&os_media.dcdp_ctrl, id);
taskEXIT_CRITICAL(); /* allow schedule after deinit */
return ;
}
@@ -238,46 +255,28 @@ void FFreeRTOSMediaChannelDeinit(u32 id)
/**
* @name: FFreeRTOSMediaHpdHandle
* @msg: handle the hpd event
- * @param {u32} channel is the dc channel
- * @param {u32} width is the width
- * @param {u32} height is the height
- * @param {u32} multi_mode is multi display mode,0:clone,1:hor,2:ver
- * @param {u32} color_depth is the color depth
- * @param {u32} refresh_rate is the refresh rate of screen
* @return Null
*/
-void FFreeRTOSMediaHpdHandle(u32 channel, u32 width, u32 height, u32 multi_mode, u32 color_depth, u32 refresh_rate)
+void FFreeRTOSMediaHpdHandle(void)
{
- u32 index;
+ u32 index;
u32 ret = FMEDIA_DP_SUCCESS;
- u32 start_index;
- u32 end_index;//ensure the channel number
- if (channel == FDCDP_INSTANCE_NUM)
- {
- start_index = 0;
- end_index = channel;
- }
- else
- {
- start_index = channel;
- end_index = channel + 1;
- }
FFreeRTOSMediaWaitEvent(FMEDIA_EVT_INTR(FMEDIA_CHANNEL_0) | FMEDIA_EVT_INTR(FMEDIA_CHANNEL_1), portMAX_DELAY);
for (;;)
{
- for (index = start_index; index < end_index; index++)
+ for (index = 0; index < FDCDP_INSTANCE_NUM; index++)
{
- if (os_media->dcdp_ctrl.connect_flg[index] == 1)
+ if (os_media.dcdp_ctrl.connect_flg[index] == 1)
{
- ret = FFreeRTOSMediaHpdReInit(index, width, height, multi_mode, color_depth, refresh_rate);
+ ret = FDcDpHotPlugConnect(&os_media.dcdp_ctrl, index);
FFreeRTOSMediaClearEvent(media_event, FMEDIA_EVT_INTR(index));
if (ret == FMEDIA_DP_SUCCESS)
{
printf("Hpd task finish , reinit the dp success.\r\n");
}
- os_media->dcdp_ctrl.connect_flg[index] == 0;
+ os_media.dcdp_ctrl.connect_flg[index] == 0;
}
}
vTaskDelay(200);
@@ -285,4 +284,20 @@ void FFreeRTOSMediaHpdHandle(u32 channel, u32 width, u32 height, u32 multi_mode,
}
-
+/**
+ * @name: FFreeRTOSLVGLConfigTask
+ * @msg: config the lvgl
+ * @param {void *} pvParameters is the parameters of demo
+ * @return Null
+ */
+void FFreeRTOSLVGLConfigTask(void)
+{
+ u32 index;
+ lv_init();
+ FFreeRTOSPortInit();
+ for (index = 0; index < FDCDP_INSTANCE_NUM; index ++)
+ {
+ FMediaDispFramebuffer(&os_media.dcdp_ctrl);
+ }
+ vTaskDelete(NULL);
+}
diff --git a/example/peripheral/media/media_test/configs/e2000d_aarch32_demo_freertos.config b/example/peripheral/media/media_test/configs/e2000d_aarch32_demo_freertos.config
index 482cbb7cf659506fb7364e3504a7bf51b47986f6..1463af4cc5f5898cecf0eaba215c66fddf3cbd54 100644
--- a/example/peripheral/media/media_test/configs/e2000d_aarch32_demo_freertos.config
+++ b/example/peripheral/media/media_test/configs/e2000d_aarch32_demo_freertos.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
CONFIG_ARM_FPU_ABI_SOFT=y
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +123,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +159,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +199,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -329,7 +329,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -340,10 +339,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -363,4 +363,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/media_test/configs/e2000d_aarch32_demo_media.config b/example/peripheral/media/media_test/configs/e2000d_aarch32_demo_media.config
index 61da65a872aae03111c14d36087e33646c9e8033..f4aca2005fbc84e7db1a722ae9e173ce59b816cc 100644
--- a/example/peripheral/media/media_test/configs/e2000d_aarch32_demo_media.config
+++ b/example/peripheral/media/media_test/configs/e2000d_aarch32_demo_media.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
CONFIG_ARM_FPU_ABI_SOFT=y
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +123,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +159,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +199,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -329,7 +329,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -340,10 +339,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -363,4 +363,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/media_test/configs/e2000d_aarch64_demo_freertos.config b/example/peripheral/media/media_test/configs/e2000d_aarch64_demo_freertos.config
index b02b2c74be72121ce2b7bd1904cd04699b55909c..0c52330ee675a96a2139af59fd69ff1e97e3296a 100644
--- a/example/peripheral/media/media_test/configs/e2000d_aarch64_demo_freertos.config
+++ b/example/peripheral/media/media_test/configs/e2000d_aarch64_demo_freertos.config
@@ -125,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -163,6 +161,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -202,7 +201,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +327,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +337,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +361,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/media_test/configs/e2000d_aarch64_demo_media.config b/example/peripheral/media/media_test/configs/e2000d_aarch64_demo_media.config
index b207a4adb67a6bae60bb74c2dac52f618e50da54..21c7270ac3e9b372b238005d28e6e93d975eabb9 100644
--- a/example/peripheral/media/media_test/configs/e2000d_aarch64_demo_media.config
+++ b/example/peripheral/media/media_test/configs/e2000d_aarch64_demo_media.config
@@ -125,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -163,6 +161,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -202,7 +201,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +327,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +337,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +361,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/media_test/configs/e2000q_aarch32_demo_freertos.config b/example/peripheral/media/media_test/configs/e2000q_aarch32_demo_freertos.config
index ade6909cbda6b301254d2bd3fbe73d57be6bb9c3..7cd3ffa4e6805deec780070d059bc8bde5257d11 100644
--- a/example/peripheral/media/media_test/configs/e2000q_aarch32_demo_freertos.config
+++ b/example/peripheral/media/media_test/configs/e2000q_aarch32_demo_freertos.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
CONFIG_ARM_FPU_ABI_SOFT=y
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +122,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +158,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +198,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -328,7 +328,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -339,10 +338,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -362,4 +362,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/media_test/configs/e2000q_aarch32_demo_media.config b/example/peripheral/media/media_test/configs/e2000q_aarch32_demo_media.config
index eadfdb076012a32eff715b79ca8a7c77e373fa74..aff13aa8d20c8ffcb14fcb37d529836df99755b8 100644
--- a/example/peripheral/media/media_test/configs/e2000q_aarch32_demo_media.config
+++ b/example/peripheral/media/media_test/configs/e2000q_aarch32_demo_media.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
CONFIG_ARM_FPU_ABI_SOFT=y
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +122,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +158,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +198,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -328,7 +328,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -339,10 +338,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -362,4 +362,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/media_test/configs/e2000q_aarch64_demo_freertos.config b/example/peripheral/media/media_test/configs/e2000q_aarch64_demo_freertos.config
index 22f873eaaef46cb64529d4ab6a009116391a63a6..e5f0ef040176209cdd07187c8ac07b620fed0741 100644
--- a/example/peripheral/media/media_test/configs/e2000q_aarch64_demo_freertos.config
+++ b/example/peripheral/media/media_test/configs/e2000q_aarch64_demo_freertos.config
@@ -124,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +160,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +200,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +326,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +336,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +360,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/media_test/configs/e2000q_aarch64_demo_media.config b/example/peripheral/media/media_test/configs/e2000q_aarch64_demo_media.config
index 84610400e4d52e56b21e2fe448c4bc5afe938fc5..6df1225ef09696059e6e47e02e7222dfb18a77d8 100644
--- a/example/peripheral/media/media_test/configs/e2000q_aarch64_demo_media.config
+++ b/example/peripheral/media/media_test/configs/e2000q_aarch64_demo_media.config
@@ -124,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +160,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +200,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +326,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +336,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +360,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/media_test/configs/phytiumpi_aarch32_firefly_freertos.config b/example/peripheral/media/media_test/configs/phytiumpi_aarch32_firefly_freertos.config
index bb3f202b0fc61bb378d5970655bd200e485ffeae..e22af0450a02c52e14a3717d304617b6ecb569ae 100644
--- a/example/peripheral/media/media_test/configs/phytiumpi_aarch32_firefly_freertos.config
+++ b/example/peripheral/media/media_test/configs/phytiumpi_aarch32_firefly_freertos.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
CONFIG_ARM_FPU_ABI_SOFT=y
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -121,8 +121,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +157,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +197,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +327,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +337,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +361,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/media_test/configs/phytiumpi_aarch32_firefly_media.config b/example/peripheral/media/media_test/configs/phytiumpi_aarch32_firefly_media.config
index a8204bb44b3c917a6a1ac8d53c92fdcb7a5b65b3..280393201ae8ecd851cb1bb6cbf248dbe86ec519 100644
--- a/example/peripheral/media/media_test/configs/phytiumpi_aarch32_firefly_media.config
+++ b/example/peripheral/media/media_test/configs/phytiumpi_aarch32_firefly_media.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
CONFIG_ARM_FPU_ABI_SOFT=y
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -121,8 +121,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +157,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +197,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +327,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +337,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +361,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/media_test/configs/phytiumpi_aarch64_firefly_freertos.config b/example/peripheral/media/media_test/configs/phytiumpi_aarch64_firefly_freertos.config
index 6a62741edc8adc7651d1323f9a8aab23e19896a2..61a1e94e56aa7e9667d6588ff40f1bbe63ddcb88 100644
--- a/example/peripheral/media/media_test/configs/phytiumpi_aarch64_firefly_freertos.config
+++ b/example/peripheral/media/media_test/configs/phytiumpi_aarch64_firefly_freertos.config
@@ -123,8 +123,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +159,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +199,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -325,7 +325,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -336,10 +335,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -359,4 +359,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/media_test/configs/phytiumpi_aarch64_firefly_media.config b/example/peripheral/media/media_test/configs/phytiumpi_aarch64_firefly_media.config
index b709550bbf4d391939fefbbc65a8b4af4f4f50f7..8bde9a8e708c7cea026df220bfdf286eef62dfde 100644
--- a/example/peripheral/media/media_test/configs/phytiumpi_aarch64_firefly_media.config
+++ b/example/peripheral/media/media_test/configs/phytiumpi_aarch64_firefly_media.config
@@ -123,8 +123,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +159,7 @@ CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +199,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -325,7 +325,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -336,10 +335,11 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -359,4 +359,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/media_test/inc/media_example.h b/example/peripheral/media/media_test/inc/media_example.h
index a2f6f82d5b382d7df060bdc8938d364e514bce65..8ff59073cb093aa9fc8d8b6e9b9c4e6f4cd942b7 100644
--- a/example/peripheral/media/media_test/inc/media_example.h
+++ b/example/peripheral/media/media_test/inc/media_example.h
@@ -33,15 +33,6 @@
extern "C"
{
#endif
-typedef struct
-{
- u32 channel;
- u32 width;
- u32 height;
- u32 multi_mode;
- u32 color_depth;
- u32 refresh_rate;
-} InputParm;
typedef struct
{
@@ -51,13 +42,11 @@ typedef struct
u8 reserve;
} GraphicsTest;
-/* return the input config */
-InputParm *InputParaReturn(void);
-
+/*create the media demo*/
FError FMediaDisplayDemo(void);
/*create the media init task*/
-BaseType_t FFreeRTOSMediaCreate(void *args);
+BaseType_t FFreeRTOSMediaCreate(void);
/*deinit the media*/
void FFreeRTOSMediaChannelDeinit(u32 id);
diff --git a/example/peripheral/media/media_test/sdkconfig b/example/peripheral/media/media_test/sdkconfig
index b709550bbf4d391939fefbbc65a8b4af4f4f50f7..87f20cd80f2c33005371f808b6b53ad63e78de5c 100644
--- a/example/peripheral/media/media_test/sdkconfig
+++ b/example/peripheral/media/media_test/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -44,13 +38,14 @@ CONFIG_GCC_CODE_MODEL_SMALL=y
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
-# CONFIG_TARGET_E2000Q is not set
+# CONFIG_TARGET_PHYTIUMPI is not set
+CONFIG_TARGET_E2000Q=y
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
-CONFIG_SOC_NAME="phytiumpi"
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="q"
CONFIG_SOC_CORE_NUM=4
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
@@ -66,7 +61,7 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
+CONFIG_BOARD_NAME="demo"
# CONFIG_USE_SPI_IOPAD is not set
# CONFIG_USE_GPIO_IOPAD is not set
# CONFIG_USE_CAN_IOPAD is not set
@@ -76,7 +71,7 @@ CONFIG_BOARD_NAME="firefly"
# CONFIG_USE_TACHO_IOPAD is not set
# CONFIG_USE_UART_IOPAD is not set
# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
+CONFIG_E2000Q_DEMO_BOARD=y
#
# IO mux configuration when board start up
@@ -123,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,12 +148,11 @@ CONFIG_USE_MEDIA=y
#
# Media Configuration
#
-CONFIG_ENABLE_FMEDIA=y
-# CONFIG_ENABLE_FDC_DP is not set
CONFIG_ENABLE_FDC_DP_USE_LIB=y
# end of Media Configuration
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -325,7 +318,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -336,10 +328,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -359,4 +353,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/media/media_test/sdkconfig.h b/example/peripheral/media/media_test/sdkconfig.h
index d366da1e9f77762ca5cb4218b09012c1cc8ef044..5d3ef050613530551692a20356834aa4d4e4d80c 100644
--- a/example/peripheral/media/media_test/sdkconfig.h
+++ b/example/peripheral/media/media_test/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -40,13 +36,14 @@
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
-/* CONFIG_TARGET_E2000Q is not set */
+/* CONFIG_TARGET_PHYTIUMPI is not set */
+#define CONFIG_TARGET_E2000Q
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
+#define CONFIG_SOC_NAME "e2000"
+#define CONFIG_TARGET_TYPE_NAME "q"
#define CONFIG_SOC_CORE_NUM 4
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
@@ -61,7 +58,7 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
+#define CONFIG_BOARD_NAME "demo"
/* CONFIG_USE_SPI_IOPAD is not set */
/* CONFIG_USE_GPIO_IOPAD is not set */
/* CONFIG_USE_CAN_IOPAD is not set */
@@ -71,7 +68,7 @@
/* CONFIG_USE_TACHO_IOPAD is not set */
/* CONFIG_USE_UART_IOPAD is not set */
/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
+#define CONFIG_E2000Q_DEMO_BOARD
/* IO mux configuration when board start up */
@@ -112,8 +109,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -141,11 +136,10 @@
/* Media Configuration */
-#define CONFIG_ENABLE_FMEDIA
-/* CONFIG_ENABLE_FDC_DP is not set */
#define CONFIG_ENABLE_FDC_DP_USE_LIB
/* end of Media Configuration */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -181,7 +175,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -285,7 +280,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -296,9 +290,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -318,6 +314,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/peripheral/media/media_test/src/cmd_media.c b/example/peripheral/media/media_test/src/cmd_media.c
index 35c7199c36d1942f5d29276718e11b69acd87400..54357895a3864f30acd2673951a256edaa8011d0 100644
--- a/example/peripheral/media/media_test/src/cmd_media.c
+++ b/example/peripheral/media/media_test/src/cmd_media.c
@@ -32,25 +32,16 @@
#include "fdc_common_hw.h"
#include "media_example.h"
-static InputParm input_config;
-InputParm *InputParaReturn(void)
-{
- return &input_config;
-}
static void FFreeRTOSMediaCmdUsage(void)
{
printf("Usage:\r\n");
- printf(" Media init 0/1/2, 0:channel 0; 1:channel 1; 2: channel 0 and channel 1,all channel can use\r\n");
- printf(" -- the resolution of width\r\n");
- printf(" -- the resolution of height\r\n");
- printf(" -- the sigle screen or multi-display \r\n");
- printf(" -- the color_depth of screen ,default color_depth is 32\r\n");
- printf(" -- the refresh_rate of screen ,default refresh_rate is 60\r\n");
- printf(" Media deinit \r\n");
+ printf(" Media init \r\n");
+ printf(" -- init the dp \r\n");;
+ printf(" Media deinit \r\n");
+ printf(" -- deinit the dp \r\n");;
printf(" Media demo\r\n");
+ printf(" -- a demo to light the screen \r\n");;
}
static int MediaCmdEntry(int argc, char *argv[])
@@ -64,29 +55,8 @@ static int MediaCmdEntry(int argc, char *argv[])
}
if (!strcmp(argv[1], "init"))
{
- if (argc >= 3)
- {
- input_config.channel = (u32)simple_strtoul(argv[2], NULL, 10);
- if (input_config.channel > FDCDP_INSTANCE_NUM)
- {
- printf("please insert the correct num,such as 0,1 or 2 \r\n");
- }
- input_config.width = (u32)simple_strtoul(argv[3], NULL, 10);
- input_config.height = (u32)simple_strtoul(argv[4], NULL, 10);
- input_config.multi_mode = (u32)simple_strtoul(argv[5], NULL, 10);
- input_config.color_depth = (u32)simple_strtoul(argv[6], NULL, 10);
- input_config.refresh_rate = (u32)simple_strtoul(argv[7], NULL, 10);
- }
- else
- {
- input_config.channel = 0;
- input_config.width = 1024;
- input_config.height = 768;
- input_config.multi_mode = 0;
- input_config.color_depth = 32;
- input_config.refresh_rate = 60;
- }
- BaseType_t task_ret = FFreeRTOSMediaCreate(&input_config);
+
+ BaseType_t task_ret = FFreeRTOSMediaCreate();
if (pdPASS != task_ret)
{
diff --git a/example/peripheral/media/media_test/src/media_example.c b/example/peripheral/media/media_test/src/media_example.c
index d1c44aa259e18759b1ff766af511b771c89af93f..832daea4b4863629f2a53b74fe0a309fba914d6f 100644
--- a/example/peripheral/media/media_test/src/media_example.c
+++ b/example/peripheral/media/media_test/src/media_example.c
@@ -20,7 +20,7 @@
* Ver Who Date Changes
* ----- ------ -------- --------------------------------------
* 1.0 Wangzq 2022/12/20 Modify the format and establish the version
- * 1.1 Wangzq 2023/07/07 change the third-party and driver relation
+ * 1.1 Wangzq 2023/07/07 change the third-party and driver relation
*/
#include
#include
@@ -51,10 +51,11 @@
static TaskHandle_t init_task;
static TaskHandle_t hpd_task ;
-static FFreeRTOSMedia *os_media;
-static InputParm *input_config;
+static FFreeRTOSMedia os_media;
static EventGroupHandle_t media_event = NULL;
static GraphicsTest blt_buffer;
+
+static u8 *static_frame_buffer_address = (u8 *)0xa0000000 ;
/************************** Function Prototypes ******************************/
static void FFreeRTOSMediaSendEvent(u32 evt_bits)
{
@@ -196,29 +197,45 @@ static void FDcDpIrqAllEnable(FDcDp *instance_p)
/**
* @name: FFreeRTOSMediaInitTask
* @msg: a task for init the media
- * @param {void} *pvParameters is config of instance of dcdp
* @return Null
*/
-static void FFreeRTOSMediaInitTask(void *pvParameters)
+static void FFreeRTOSMediaInitTask(void)
{
- input_config = (InputParm *)pvParameters;
- u32 channel_num = input_config->channel;
- u32 width = input_config->width;
- u32 height = input_config->height;
- u32 multi_mode = input_config->multi_mode;
- u32 color_depth = input_config->color_depth;
- u32 refresh_rate = input_config->refresh_rate;
+ u32 index, start_index, end_index;
+
+ /*设置用户参数*/
+ u32 channel = 2;/* 0 or 1 or 2*/
+ if (channel == FDCDP_INSTANCE_NUM)
+ {
+ start_index = 0;
+ end_index = FDCDP_INSTANCE_NUM;
+ }
+ else
+ {
+ start_index = channel;
+ end_index = channel + 1;
+ }
+ for (index = start_index; index < end_index; index ++)
+ {
+ os_media.dcdp_ctrl.user_config[index].width = 640;
+ os_media.dcdp_ctrl.user_config[index].height = 480;
+ os_media.dcdp_ctrl.user_config[index].refresh_rate = 60;
+ os_media.dcdp_ctrl.user_config[index].color_depth = 32;
+ os_media.dcdp_ctrl.user_config[index].multi_mode = 0;
+ os_media.dcdp_ctrl.user_config[index].fb_phy = (uintptr)static_frame_buffer_address;
+ os_media.dcdp_ctrl.user_config[index].fb_virtual = (uintptr)static_frame_buffer_address ;/*当前例程虚拟地址和物理地址一致,实际需要根据需要进行映射*/
+ }
- os_media = FFreeRTOSMediaHwInit(channel_num, width, height, multi_mode, color_depth, refresh_rate);
- FFreeRTOSMediaIrqSet(&os_media->dcdp_ctrl);
- FDcDpIrqAllEnable(&os_media->dcdp_ctrl);
+ FFreeRTOSMedia *os_config = FFreeRTOSMediaHwInit(channel, &os_media);
+ FFreeRTOSMediaIrqSet(&os_config->dcdp_ctrl);
+ FDcDpIrqAllEnable(&os_config->dcdp_ctrl);
vTaskDelete(NULL);
}
/**
* @name: FFreeRTOSMediaChannelDeinit
* @msg: deinit the media
- * @param {u32} id is channel of media
+ * @param {u32} id is the number of dcdp
* @return Null
*/
void FFreeRTOSMediaChannelDeinit(u32 id)
@@ -226,12 +243,11 @@ void FFreeRTOSMediaChannelDeinit(u32 id)
taskENTER_CRITICAL();
vEventGroupDelete(media_event);
media_event = NULL;
- FDcDpDeInitialize(&os_media->dcdp_ctrl, id);
+ FDcDpDeInitialize(&os_media.dcdp_ctrl, id);/*deinit the id channel*/
taskEXIT_CRITICAL();
return;
}
-
/**
* @name: BltVideoToFill
* @msg: write the rgb to the dc
@@ -246,7 +262,7 @@ static void PhyFramebufferWrite(FDcCtrl *instance_p, uintptr offset, u32 length,
u32 Index;
for (Index = 0; Index < length; Index++)
{
- FtOut32(instance_p->fdc_current_config.framebuffer.framebuffer_p + offset + Index * 4, *((u32 *)(config + Index * 4)));
+ FtOut32(os_media.dcdp_ctrl.user_config->fb_virtual + offset + Index * 4, *((u32 *)(config + Index * 4)));
}
}
@@ -289,67 +305,46 @@ static void BltVideoToFill(FDcCtrl *instance_p, GraphicsTest *config, u32 width,
*/
FError FMediaDisplayDemo(void)
{
- FDcDp *instance_p = &os_media->dcdp_ctrl;
- InputParm *input_config = InputParaReturn();
- for (u32 index = 0; index < 2; index ++)
+ FDcDp *instance_p = &os_media.dcdp_ctrl;
+ for (u32 index = 0; index < FDCDP_INSTANCE_NUM; index ++)
{
blt_buffer.Red = 0xff;
blt_buffer.Green = 0xff;
blt_buffer.Blue = 0x0;
blt_buffer.reserve = 0;
- BltVideoToFill(&instance_p->dc_instance_p[index], &blt_buffer, input_config->width, input_config->height);
+ BltVideoToFill(&instance_p->dc_instance_p[index], &blt_buffer, instance_p->user_config[index].width, instance_p->user_config[index].height);
}
}
-static void FFreeRTOSMediaHpdTask(void *pvParameters)
+/* create the hpd task */
+static void FFreeRTOSMediaHpdTask(void)
{
- input_config = (InputParm *)pvParameters;
u32 index;
u32 ret = 0 ;
- u32 channel = input_config->channel;
- u32 multi_mode = input_config->multi_mode;
- u32 color_depth = input_config->color_depth;
- u32 refresh_rate = input_config->refresh_rate;
- u32 width = input_config->width;
- u32 height = input_config->height;
- u32 start_index;
- u32 end_index;//ensure the channel number
-
- if (channel == FDCDP_INSTANCE_NUM)
- {
- start_index = 0;
- end_index = channel;
- }
- else
- {
- start_index = channel;
- end_index = channel + 1;
- }
-
FFreeRTOSMediaWaitEvent(FMEDIA_EVT_INTR(FMEDIA_CHANNEL_0) | FMEDIA_EVT_INTR(FMEDIA_CHANNEL_1), portMAX_DELAY);
for (;;)
{
- for (index = start_index; index < end_index; index++)
+ for (index = 0; index < FDCDP_INSTANCE_NUM; index++)
{
- if (os_media->dcdp_ctrl.connect_flg[index] == 1)
+ if (os_media.dcdp_ctrl.connect_flg[index] == 1)
{
- ret = FFreeRTOSMediaHpdReInit(index, width, height, multi_mode, color_depth, refresh_rate);
+ ret = FDcDpHotPlugConnect(&os_media.dcdp_ctrl, index);
FFreeRTOSMediaClearEvent(media_event, FMEDIA_EVT_INTR(index));
if (ret == FMEDIA_DP_SUCCESS)
{
printf("Hpd task finish , reinit the dp success.\r\n");
}
- os_media->dcdp_ctrl.connect_flg[index] == 0;
+ os_media.dcdp_ctrl.connect_flg[index] == 0;
}
}
vTaskDelay(200);
}
}
-/* create media test, id is media module number */
-BaseType_t FFreeRTOSMediaCreate(void *args)
+/* create media test*/
+BaseType_t FFreeRTOSMediaCreate(void)
{
BaseType_t xReturn = pdPASS; /* 定义一个创建信息返回值,默认为 pdPASS */
FASSERT_MSG(NULL == media_event, "Event group exists.");
@@ -360,7 +355,7 @@ BaseType_t FFreeRTOSMediaCreate(void *args)
xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSMediaInitTask, /* 任务入口函数 */
(const char *)"FFreeRTOSMediaInitTask", /* 任务名字 */
(uint16_t)1024, /* 任务栈大小 */
- (void *)args, /* 任务入口函数参数 */
+ NULL, /* 任务入口函数参数 */
(UBaseType_t)configMAX_PRIORITIES - 2, /* 任务的优先级 */
(TaskHandle_t *)&init_task);
@@ -368,7 +363,7 @@ BaseType_t FFreeRTOSMediaCreate(void *args)
xReturn = xTaskCreate((TaskFunction_t)FFreeRTOSMediaHpdTask, /* 任务入口函数 */
(const char *)"FFreeRTOSMediaHpdTask", /* 任务名字 */
(uint16_t)1024, /* 任务栈大小 */
- (void *)args, /* 任务入口函数参数 */
+ NULL, /* 任务入口函数参数 */
(UBaseType_t)configMAX_PRIORITIES - 1, /* 任务的优先级 */
(TaskHandle_t *)&hpd_task);
/* exit critical region */
diff --git a/example/peripheral/pwm/configs/e2000d_aarch32_demo_pwm.config b/example/peripheral/pwm/configs/e2000d_aarch32_demo_pwm.config
index 21d51c569dbad73218d5c58eaf2f2a01e9ae368c..43e74e50583a8148d5644f9f3c3f9183f7c37e31 100644
--- a/example/peripheral/pwm/configs/e2000d_aarch32_demo_pwm.config
+++ b/example/peripheral/pwm/configs/e2000d_aarch32_demo_pwm.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +160,7 @@ CONFIG_USE_FPWM=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +200,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -328,7 +330,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -339,10 +340,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -362,4 +365,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/pwm/configs/e2000d_aarch64_demo_pwm.config b/example/peripheral/pwm/configs/e2000d_aarch64_demo_pwm.config
index 7b91b0060e43eb622a0f52b431ce6e6d0019d848..276f9aec99b69f4b6b0ba7389e7ca49287fc89f3 100644
--- a/example/peripheral/pwm/configs/e2000d_aarch64_demo_pwm.config
+++ b/example/peripheral/pwm/configs/e2000d_aarch64_demo_pwm.config
@@ -126,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +160,7 @@ CONFIG_USE_FPWM=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +200,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +326,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +336,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +361,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/pwm/configs/e2000q_aarch32_demo_pwm.config b/example/peripheral/pwm/configs/e2000q_aarch32_demo_pwm.config
index 55016ac4f80e7b664dc9ff191fbc24d8286c1e09..32dc16742b4cafaa3d3a17c3b1b6b7624b0bd42e 100644
--- a/example/peripheral/pwm/configs/e2000q_aarch32_demo_pwm.config
+++ b/example/peripheral/pwm/configs/e2000q_aarch32_demo_pwm.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +123,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +157,7 @@ CONFIG_USE_FPWM=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +197,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +327,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +337,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +362,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/pwm/configs/e2000q_aarch64_demo_pwm.config b/example/peripheral/pwm/configs/e2000q_aarch64_demo_pwm.config
index 782f3b751c555163bf387dec3f5a34042b3589ef..e9c68b9284a0a8824953d7f82fae162ec158bdf8 100644
--- a/example/peripheral/pwm/configs/e2000q_aarch64_demo_pwm.config
+++ b/example/peripheral/pwm/configs/e2000q_aarch64_demo_pwm.config
@@ -125,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +159,7 @@ CONFIG_USE_FPWM=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +199,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -325,7 +325,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -336,10 +335,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -359,4 +360,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/pwm/configs/phytiumpi_aarch32_firefly_pwm.config b/example/peripheral/pwm/configs/phytiumpi_aarch32_firefly_pwm.config
index f8e1f772e940ad3341477fdd07ef2713ecac8933..bf349c4a9840b680c4b363c9c54916838c366ebc 100644
--- a/example/peripheral/pwm/configs/phytiumpi_aarch32_firefly_pwm.config
+++ b/example/peripheral/pwm/configs/phytiumpi_aarch32_firefly_pwm.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +122,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -158,6 +156,7 @@ CONFIG_USE_FPWM=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -197,7 +196,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +326,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +336,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +361,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/pwm/configs/phytiumpi_aarch64_firefly_pwm.config b/example/peripheral/pwm/configs/phytiumpi_aarch64_firefly_pwm.config
index b6cd8b1df70125945a6361a913ae320ac1a25d69..6843c207cc451ddc9659a1d84ad2cbcc40590194 100644
--- a/example/peripheral/pwm/configs/phytiumpi_aarch64_firefly_pwm.config
+++ b/example/peripheral/pwm/configs/phytiumpi_aarch64_firefly_pwm.config
@@ -124,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +158,7 @@ CONFIG_USE_FPWM=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +198,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -324,7 +324,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -335,10 +334,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -358,4 +359,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/pwm/sdkconfig b/example/peripheral/pwm/sdkconfig
index b6cd8b1df70125945a6361a913ae320ac1a25d69..43e74e50583a8148d5644f9f3c3f9183f7c37e31 100644
--- a/example/peripheral/pwm/sdkconfig
+++ b/example/peripheral/pwm/sdkconfig
@@ -9,8 +9,8 @@ CONFIG_ARCH_NAME="armv8"
#
# Arm architecture configuration
#
-CONFIG_ARCH_ARMV8_AARCH64=y
-# CONFIG_ARCH_ARMV8_AARCH32 is not set
+# CONFIG_ARCH_ARMV8_AARCH64 is not set
+CONFIG_ARCH_ARMV8_AARCH32=y
#
# Compiler configuration
@@ -18,41 +18,42 @@ CONFIG_ARCH_ARMV8_AARCH64=y
CONFIG_ARM_GCC_SELECT=y
# CONFIG_ARM_CLANG_SELECT is not set
CONFIG_TOOLCHAIN_NAME="gcc"
-CONFIG_TARGET_ARMV8_AARCH64=y
-CONFIG_ARCH_EXECUTION_STATE="aarch64"
+CONFIG_TARGET_ARMV8_AARCH32=y
+CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-CONFIG_ARM_NEON=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
-
-CONFIG_ARM_CRC=y
-CONFIG_ARM_CRYPTO=y
-CONFIG_ARM_FLOAT_POINT=y
-# CONFIG_GCC_CODE_MODEL_TINY is not set
-CONFIG_GCC_CODE_MODEL_SMALL=y
-# CONFIG_GCC_CODE_MODEL_LARGE is not set
# end of Compiler configuration
CONFIG_USE_CACHE=y
CONFIG_USE_MMU=y
-# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
-# CONFIG_MMU_DEBUG_PRINTS is not set
+CONFIG_USE_AARCH64_L1_TO_AARCH32=y
# end of Arm architecture configuration
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
-# CONFIG_TARGET_E2000D is not set
+CONFIG_TARGET_E2000D=y
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="d"
+CONFIG_SOC_CORE_NUM=2
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
@@ -67,21 +68,22 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
+CONFIG_E2000D_DEMO_BOARD=y
+CONFIG_BOARD_NAME="demo"
+
+#
+# IO mux configuration when board start up
+#
# CONFIG_USE_SPI_IOPAD is not set
# CONFIG_USE_GPIO_IOPAD is not set
# CONFIG_USE_CAN_IOPAD is not set
# CONFIG_USE_QSPI_IOPAD is not set
# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_ADC_IOPAD is not set
# CONFIG_USE_MIO_IOPAD is not set
# CONFIG_USE_TACHO_IOPAD is not set
# CONFIG_USE_UART_IOPAD is not set
# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
-
-#
-# IO mux configuration when board start up
-#
# end of IO mux configuration when board start up
# CONFIG_CUS_DEMO_BOARD is not set
@@ -124,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +160,7 @@ CONFIG_USE_FPWM=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +200,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -212,8 +214,12 @@ CONFIG_DEFAULT_LINKER_SCRIPT=y
CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
CONFIG_IMAGE_MAX_LENGTH=0x1000000
CONFIG_HEAP_SIZE=1
-CONFIG_STACK_SIZE=0x400
-CONFIG_FPU_STACK_SIZE=0x1000
+CONFIG_SVC_STACK_SIZE=0x1000
+CONFIG_SYS_STACK_SIZE=0x1000
+CONFIG_IRQ_STACK_SIZE=0x1000
+CONFIG_ABORT_STACK_SIZE=0x1000
+CONFIG_FIQ_STACK_SIZE=0x1000
+CONFIG_UNDEF_STACK_SIZE=0x1000
# end of Linker Options
# end of Build setup
@@ -324,7 +330,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -335,10 +340,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -358,4 +365,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/pwm/sdkconfig.h b/example/peripheral/pwm/sdkconfig.h
index 8a91e0edcc76b4536f252aa7119e2f73b30f09f6..a46a7518196bfce9be06e7441b648a56f475705c 100644
--- a/example/peripheral/pwm/sdkconfig.h
+++ b/example/peripheral/pwm/sdkconfig.h
@@ -10,45 +10,47 @@
/* Arm architecture configuration */
-#define CONFIG_ARCH_ARMV8_AARCH64
-/* CONFIG_ARCH_ARMV8_AARCH32 is not set */
+/* CONFIG_ARCH_ARMV8_AARCH64 is not set */
+#define CONFIG_ARCH_ARMV8_AARCH32
/* Compiler configuration */
#define CONFIG_ARM_GCC_SELECT
/* CONFIG_ARM_CLANG_SELECT is not set */
#define CONFIG_TOOLCHAIN_NAME "gcc"
-#define CONFIG_TARGET_ARMV8_AARCH64
-#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
+#define CONFIG_TARGET_ARMV8_AARCH32
+#define CONFIG_ARCH_EXECUTION_STATE "aarch32"
/* Fpu configuration */
-#define CONFIG_ARM_NEON
+#define CONFIG_CRYPTO_NEON_FP_ARMV8
+/* CONFIG_VFPV4 is not set */
+/* CONFIG_VFPV4_D16 is not set */
+/* CONFIG_VFPV3 is not set */
+/* CONFIG_VFPV3_D16 is not set */
+#define CONFIG_ARM_MFPU "crypto-neon-fp-armv8"
+#define CONFIG_MFLOAT_ABI_HARD
+/* CONFIG_MFLOAT_ABI_SOFTFP is not set */
+#define CONFIG_ARM_MFLOAT_ABI "hard"
/* end of Fpu configuration */
-#define CONFIG_ARM_CRC
-#define CONFIG_ARM_CRYPTO
-#define CONFIG_ARM_FLOAT_POINT
-/* CONFIG_GCC_CODE_MODEL_TINY is not set */
-#define CONFIG_GCC_CODE_MODEL_SMALL
-/* CONFIG_GCC_CODE_MODEL_LARGE is not set */
/* end of Compiler configuration */
#define CONFIG_USE_CACHE
#define CONFIG_USE_MMU
-/* CONFIG_BOOT_WITH_FLUSH_CACHE is not set */
-/* CONFIG_MMU_DEBUG_PRINTS is not set */
+#define CONFIG_USE_AARCH64_L1_TO_AARCH32
/* end of Arm architecture configuration */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
-/* CONFIG_TARGET_E2000D is not set */
+#define CONFIG_TARGET_E2000D
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_SOC_NAME "e2000"
+#define CONFIG_TARGET_TYPE_NAME "d"
+#define CONFIG_SOC_CORE_NUM 2
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
@@ -62,20 +64,21 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
+#define CONFIG_E2000D_DEMO_BOARD
+#define CONFIG_BOARD_NAME "demo"
+
+/* IO mux configuration when board start up */
+
/* CONFIG_USE_SPI_IOPAD is not set */
/* CONFIG_USE_GPIO_IOPAD is not set */
/* CONFIG_USE_CAN_IOPAD is not set */
/* CONFIG_USE_QSPI_IOPAD is not set */
/* CONFIG_USE_PWM_IOPAD is not set */
+/* CONFIG_USE_ADC_IOPAD is not set */
/* CONFIG_USE_MIO_IOPAD is not set */
/* CONFIG_USE_TACHO_IOPAD is not set */
/* CONFIG_USE_UART_IOPAD is not set */
/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
-
-/* IO mux configuration when board start up */
-
/* end of IO mux configuration when board start up */
/* CONFIG_CUS_DEMO_BOARD is not set */
@@ -113,8 +116,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -145,6 +146,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -180,7 +182,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -191,8 +194,12 @@
#define CONFIG_IMAGE_LOAD_ADDRESS 0x80100000
#define CONFIG_IMAGE_MAX_LENGTH 0x1000000
#define CONFIG_HEAP_SIZE 1
-#define CONFIG_STACK_SIZE 0x400
-#define CONFIG_FPU_STACK_SIZE 0x1000
+#define CONFIG_SVC_STACK_SIZE 0x1000
+#define CONFIG_SYS_STACK_SIZE 0x1000
+#define CONFIG_IRQ_STACK_SIZE 0x1000
+#define CONFIG_ABORT_STACK_SIZE 0x1000
+#define CONFIG_FIQ_STACK_SIZE 0x1000
+#define CONFIG_UNDEF_STACK_SIZE 0x1000
/* end of Linker Options */
/* end of Build setup */
@@ -284,7 +291,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -295,9 +301,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -317,6 +325,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/peripheral/qspi/configs/d2000_aarch32_test_qspi.config b/example/peripheral/qspi/configs/d2000_aarch32_test_qspi.config
index d0f8ef3213cec1cd2afe8969d3ee8f918479d867..8df8fbd8ce52828b38ac4e73bbf1663cdc2f7946 100644
--- a/example/peripheral/qspi/configs/d2000_aarch32_test_qspi.config
+++ b/example/peripheral/qspi/configs/d2000_aarch32_test_qspi.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -118,8 +120,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -147,6 +147,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -186,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -315,7 +317,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -326,10 +327,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -349,4 +352,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/qspi/configs/d2000_aarch64_test_qspi.config b/example/peripheral/qspi/configs/d2000_aarch64_test_qspi.config
index 8336319304b543fad3399d22ab1da4fcc4443359..f2b5766e7b828d0f1f537ead9ce089b6a951b18d 100644
--- a/example/peripheral/qspi/configs/d2000_aarch64_test_qspi.config
+++ b/example/peripheral/qspi/configs/d2000_aarch64_test_qspi.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -120,8 +114,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -149,6 +141,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -188,7 +181,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -313,7 +307,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -324,10 +317,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -347,4 +342,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/qspi/configs/e2000d_aarch32_demo_qspi.config b/example/peripheral/qspi/configs/e2000d_aarch32_demo_qspi.config
index d7352e732dad05625598bb82cc90c68cf86556ea..38291262322caf7763a6c9bfa38089c321b6d70c 100644
--- a/example/peripheral/qspi/configs/e2000d_aarch32_demo_qspi.config
+++ b/example/peripheral/qspi/configs/e2000d_aarch32_demo_qspi.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -131,8 +133,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +160,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +200,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -328,7 +330,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -339,10 +340,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -362,4 +365,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/qspi/configs/e2000d_aarch64_demo_qspi.config b/example/peripheral/qspi/configs/e2000d_aarch64_demo_qspi.config
index 72dbdd5d240452eb283d196a0d49860d732748e6..19f1c8e644f41311f2b627cdb931d7382f1b8751 100644
--- a/example/peripheral/qspi/configs/e2000d_aarch64_demo_qspi.config
+++ b/example/peripheral/qspi/configs/e2000d_aarch64_demo_qspi.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -133,8 +127,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +154,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +194,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +320,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +330,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +355,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/qspi/configs/e2000q_aarch32_demo_qspi.config b/example/peripheral/qspi/configs/e2000q_aarch32_demo_qspi.config
index 07c440ee5a69818e3153b1dc9ce5ca88a2b6bb8f..bedc7e192ebb9b46e5a6b723e595b17d38e2c439 100644
--- a/example/peripheral/qspi/configs/e2000q_aarch32_demo_qspi.config
+++ b/example/peripheral/qspi/configs/e2000q_aarch32_demo_qspi.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -130,8 +132,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +159,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +199,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +329,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +339,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +364,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/qspi/configs/e2000q_aarch64_demo_qspi.config b/example/peripheral/qspi/configs/e2000q_aarch64_demo_qspi.config
index 7e24efcc6015dc5ba311014e2f55c7aaeae2ff4b..960a42379520a92a006a9872b0345389a13cc608 100644
--- a/example/peripheral/qspi/configs/e2000q_aarch64_demo_qspi.config
+++ b/example/peripheral/qspi/configs/e2000q_aarch64_demo_qspi.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -132,8 +126,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +153,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -325,7 +319,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -336,10 +329,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -359,4 +354,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/qspi/configs/ft2004_aarch32_dsk_qspi.config b/example/peripheral/qspi/configs/ft2004_aarch32_dsk_qspi.config
index 4ab27deeb36e5b59e26ff8a15843c21049399ed2..a99e7864b8d8ae9e7dd943bcf02a73f7ac5b0d14 100644
--- a/example/peripheral/qspi/configs/ft2004_aarch32_dsk_qspi.config
+++ b/example/peripheral/qspi/configs/ft2004_aarch32_dsk_qspi.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -118,8 +120,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -147,6 +147,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -186,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -315,7 +317,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -326,10 +327,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -349,4 +352,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/qspi/configs/ft2004_aarch64_dsk_qspi.config b/example/peripheral/qspi/configs/ft2004_aarch64_dsk_qspi.config
index b7e74d4d110c2dab4b0ecb13e9d068fc6de5d03a..cc8d8af3e9d89c36ae55c65d153f4ea88dacecc2 100644
--- a/example/peripheral/qspi/configs/ft2004_aarch64_dsk_qspi.config
+++ b/example/peripheral/qspi/configs/ft2004_aarch64_dsk_qspi.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -120,8 +114,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -149,6 +141,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -188,7 +181,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -313,7 +307,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -324,10 +317,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -347,4 +342,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/qspi/configs/phytiumpi_aarch32_firefly_qspi.config b/example/peripheral/qspi/configs/phytiumpi_aarch32_firefly_qspi.config
index 128059b72ce8ea6dcfd989865b5b3728da85a5f3..a0d8e9af895705dccbcb9dfb8a5f4101ba01dd9f 100644
--- a/example/peripheral/qspi/configs/phytiumpi_aarch32_firefly_qspi.config
+++ b/example/peripheral/qspi/configs/phytiumpi_aarch32_firefly_qspi.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -129,8 +131,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -158,6 +158,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -197,7 +198,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +328,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +338,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +363,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/qspi/configs/phytiumpi_aarch64_firefly_qspi.config b/example/peripheral/qspi/configs/phytiumpi_aarch64_firefly_qspi.config
index 3e75a56df42517cd5beb9a0a0ececcd3df043358..1d2b2432804233fb32cd12d4160ec80a55f7b38b 100644
--- a/example/peripheral/qspi/configs/phytiumpi_aarch64_firefly_qspi.config
+++ b/example/peripheral/qspi/configs/phytiumpi_aarch64_firefly_qspi.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -131,8 +125,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -324,7 +318,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -335,10 +328,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -358,4 +353,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/qspi/sdkconfig b/example/peripheral/qspi/sdkconfig
index 3e75a56df42517cd5beb9a0a0ececcd3df043358..1d2b2432804233fb32cd12d4160ec80a55f7b38b 100644
--- a/example/peripheral/qspi/sdkconfig
+++ b/example/peripheral/qspi/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -131,8 +125,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -324,7 +318,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -335,10 +328,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -358,4 +353,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/qspi/sdkconfig.h b/example/peripheral/qspi/sdkconfig.h
index 53f2d44f683190315e0235f53a8d0c22a184c9b0..a97b4b83c098bdf4b43aafe4dffc3753e9a1b2dd 100644
--- a/example/peripheral/qspi/sdkconfig.h
+++ b/example/peripheral/qspi/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -118,8 +114,6 @@
#define CONFIG_USE_FQSPI
/* end of Qspi Configuration */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -145,6 +139,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -180,7 +175,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -284,7 +280,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -295,9 +290,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -317,6 +314,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/peripheral/sdio/Kconfig b/example/peripheral/sdif/Kconfig
similarity index 100%
rename from example/peripheral/sdio/Kconfig
rename to example/peripheral/sdif/Kconfig
diff --git a/example/peripheral/sdio/README.md b/example/peripheral/sdif/README.md
similarity index 90%
rename from example/peripheral/sdio/README.md
rename to example/peripheral/sdif/README.md
index ad0de625d009e5100e0ecf4e8bae422beac93a26..77fa5821c049d454117a63b5ea446b504bd8d07a 100644
--- a/example/peripheral/sdio/README.md
+++ b/example/peripheral/sdif/README.md
@@ -109,10 +109,9 @@ bootelf -p 0xa0100000
### 2.4 输出与实验现象
- 系统进入后,创建任务初始化tf卡,循环读写Tf卡中第3~6块的内容
->注意:飞腾派上没有emmc,作为外插的sd口连接控制器0,且使用tf卡进行读写操作时需要避开固件存储的范围,请使用命令:sd wr 0 tf 10485760 3
```
-sd wr 1 tf 3 3
+sd tf
```

@@ -121,12 +120,15 @@ sd wr 1 tf 3 3
>注意:飞腾派上没有emmc,无法使用下面的命令
```
-sd wr 0 emmc 7 3
+sd emmc
```

## 3. 如何解决问题
+Q: 飞腾派上使用例程
+A: 飞腾派上没有emmc,作为外插的sd口连接控制器0,由于 tf 卡中存储了固件和文件系统,此例程的读写可能会损害启动文件,不建议直接使用此例程,关于 tf 卡的使用可以参考 storage 中的 fatfs 例程使用特定分区内的文件系统
+
## 4. 修改历史记录
diff --git a/example/peripheral/sdif/configs/e2000d_aarch32_demo_sdif.config b/example/peripheral/sdif/configs/e2000d_aarch32_demo_sdif.config
new file mode 100644
index 0000000000000000000000000000000000000000..5ec5eb5978bb045c1f39a38f23673f049e526fd6
--- /dev/null
+++ b/example/peripheral/sdif/configs/e2000d_aarch32_demo_sdif.config
@@ -0,0 +1,386 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+# CONFIG_ARCH_ARMV8_AARCH64 is not set
+CONFIG_ARCH_ARMV8_AARCH32=y
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH32=y
+CONFIG_ARCH_EXECUTION_STATE="aarch32"
+
+#
+# Fpu configuration
+#
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
+# end of Fpu configuration
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+CONFIG_USE_AARCH64_L1_TO_AARCH32=y
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+# CONFIG_TARGET_E2000Q is not set
+CONFIG_TARGET_E2000D=y
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="d"
+CONFIG_SOC_CORE_NUM=2
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_E2000D_DEMO_BOARD=y
+CONFIG_BOARD_NAME="demo"
+
+#
+# IO mux configuration when board start up
+#
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_ADC_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="sdif"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_WARN is not set
+CONFIG_LOG_ERROR=y
+# CONFIG_LOG_NONE is not set
+CONFIG_LOG_EXTRA_INFO=y
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+# CONFIG_USE_GPIO is not set
+# CONFIG_USE_ETH is not set
+# CONFIG_USE_CAN is not set
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+CONFIG_USE_SDMMC=y
+# CONFIG_ENABLE_FSDMMC is not set
+CONFIG_ENABLE_FSDIF=y
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+CONFIG_CHECK_DEPS=y
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_OUTPUT_ASM_DIS is not set
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+CONFIG_USE_COMPILE_CHAIN=y
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_SVC_STACK_SIZE=0x1000
+CONFIG_SYS_STACK_SIZE=0x1000
+CONFIG_IRQ_STACK_SIZE=0x1000
+CONFIG_ABORT_STACK_SIZE=0x1000
+CONFIG_FIQ_STACK_SIZE=0x1000
+CONFIG_UNDEF_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+# CONFIG_FREERTOS_USE_CAN is not set
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+# CONFIG_USE_LWIP is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+CONFIG_USE_TLSF=y
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+# CONFIG_FSL_SDMMC_ENABLE_SDIO is not set
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+# CONFIG_USE_FSL_WIFI is not set
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/sdif/configs/e2000d_aarch64_demo_sdif.config b/example/peripheral/sdif/configs/e2000d_aarch64_demo_sdif.config
new file mode 100644
index 0000000000000000000000000000000000000000..bf97c1859285042d8956f3f739a44b19a47cb495
--- /dev/null
+++ b/example/peripheral/sdif/configs/e2000d_aarch64_demo_sdif.config
@@ -0,0 +1,376 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+CONFIG_ARCH_ARMV8_AARCH64=y
+# CONFIG_ARCH_ARMV8_AARCH32 is not set
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH64=y
+CONFIG_ARCH_EXECUTION_STATE="aarch64"
+CONFIG_ARM_NEON=y
+CONFIG_ARM_CRC=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_ARM_FLOAT_POINT=y
+# CONFIG_GCC_CODE_MODEL_TINY is not set
+CONFIG_GCC_CODE_MODEL_SMALL=y
+# CONFIG_GCC_CODE_MODEL_LARGE is not set
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
+# CONFIG_MMU_DEBUG_PRINTS is not set
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+# CONFIG_TARGET_E2000Q is not set
+CONFIG_TARGET_E2000D=y
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="d"
+CONFIG_SOC_CORE_NUM=2
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_E2000D_DEMO_BOARD=y
+CONFIG_BOARD_NAME="demo"
+
+#
+# IO mux configuration when board start up
+#
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_ADC_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="sdif"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_WARN is not set
+CONFIG_LOG_ERROR=y
+# CONFIG_LOG_NONE is not set
+CONFIG_LOG_EXTRA_INFO=y
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+# CONFIG_USE_GPIO is not set
+# CONFIG_USE_ETH is not set
+# CONFIG_USE_CAN is not set
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+CONFIG_USE_SDMMC=y
+# CONFIG_ENABLE_FSDMMC is not set
+CONFIG_ENABLE_FSDIF=y
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+CONFIG_CHECK_DEPS=y
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_OUTPUT_ASM_DIS is not set
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+CONFIG_USE_COMPILE_CHAIN=y
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_STACK_SIZE=0x400
+CONFIG_FPU_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+# CONFIG_FREERTOS_USE_CAN is not set
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+# CONFIG_USE_LWIP is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+CONFIG_USE_TLSF=y
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+# CONFIG_FSL_SDMMC_ENABLE_SDIO is not set
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+# CONFIG_USE_FSL_WIFI is not set
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/sdif/configs/e2000q_aarch32_demo_sdif.config b/example/peripheral/sdif/configs/e2000q_aarch32_demo_sdif.config
new file mode 100644
index 0000000000000000000000000000000000000000..a51135493ebf11c876e0d436d0b2384ad016be6a
--- /dev/null
+++ b/example/peripheral/sdif/configs/e2000q_aarch32_demo_sdif.config
@@ -0,0 +1,385 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+# CONFIG_ARCH_ARMV8_AARCH64 is not set
+CONFIG_ARCH_ARMV8_AARCH32=y
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH32=y
+CONFIG_ARCH_EXECUTION_STATE="aarch32"
+
+#
+# Fpu configuration
+#
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
+# end of Fpu configuration
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+CONFIG_USE_AARCH64_L1_TO_AARCH32=y
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+CONFIG_TARGET_E2000Q=y
+# CONFIG_TARGET_E2000D is not set
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="q"
+CONFIG_SOC_CORE_NUM=4
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_BOARD_NAME="demo"
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+CONFIG_E2000Q_DEMO_BOARD=y
+
+#
+# IO mux configuration when board start up
+#
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="sdif"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_WARN is not set
+CONFIG_LOG_ERROR=y
+# CONFIG_LOG_NONE is not set
+CONFIG_LOG_EXTRA_INFO=y
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+# CONFIG_USE_GPIO is not set
+# CONFIG_USE_ETH is not set
+# CONFIG_USE_CAN is not set
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+CONFIG_USE_SDMMC=y
+# CONFIG_ENABLE_FSDMMC is not set
+CONFIG_ENABLE_FSDIF=y
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+CONFIG_CHECK_DEPS=y
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_OUTPUT_ASM_DIS is not set
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+CONFIG_USE_COMPILE_CHAIN=y
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_SVC_STACK_SIZE=0x1000
+CONFIG_SYS_STACK_SIZE=0x1000
+CONFIG_IRQ_STACK_SIZE=0x1000
+CONFIG_ABORT_STACK_SIZE=0x1000
+CONFIG_FIQ_STACK_SIZE=0x1000
+CONFIG_UNDEF_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+# CONFIG_FREERTOS_USE_CAN is not set
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+# CONFIG_USE_LWIP is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+CONFIG_USE_TLSF=y
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+# CONFIG_FSL_SDMMC_ENABLE_SDIO is not set
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+# CONFIG_USE_FSL_WIFI is not set
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/sdif/configs/e2000q_aarch64_demo_sdif.config b/example/peripheral/sdif/configs/e2000q_aarch64_demo_sdif.config
new file mode 100644
index 0000000000000000000000000000000000000000..68fa5359b41e9d603f331133e5a69910b5694e22
--- /dev/null
+++ b/example/peripheral/sdif/configs/e2000q_aarch64_demo_sdif.config
@@ -0,0 +1,375 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+CONFIG_ARCH_ARMV8_AARCH64=y
+# CONFIG_ARCH_ARMV8_AARCH32 is not set
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH64=y
+CONFIG_ARCH_EXECUTION_STATE="aarch64"
+CONFIG_ARM_NEON=y
+CONFIG_ARM_CRC=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_ARM_FLOAT_POINT=y
+# CONFIG_GCC_CODE_MODEL_TINY is not set
+CONFIG_GCC_CODE_MODEL_SMALL=y
+# CONFIG_GCC_CODE_MODEL_LARGE is not set
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
+# CONFIG_MMU_DEBUG_PRINTS is not set
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+CONFIG_TARGET_E2000Q=y
+# CONFIG_TARGET_E2000D is not set
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="q"
+CONFIG_SOC_CORE_NUM=4
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_BOARD_NAME="demo"
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+CONFIG_E2000Q_DEMO_BOARD=y
+
+#
+# IO mux configuration when board start up
+#
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="sdif"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_WARN is not set
+CONFIG_LOG_ERROR=y
+# CONFIG_LOG_NONE is not set
+CONFIG_LOG_EXTRA_INFO=y
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+# CONFIG_USE_GPIO is not set
+# CONFIG_USE_ETH is not set
+# CONFIG_USE_CAN is not set
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+CONFIG_USE_SDMMC=y
+# CONFIG_ENABLE_FSDMMC is not set
+CONFIG_ENABLE_FSDIF=y
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+CONFIG_CHECK_DEPS=y
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_OUTPUT_ASM_DIS is not set
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+CONFIG_USE_COMPILE_CHAIN=y
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_STACK_SIZE=0x400
+CONFIG_FPU_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+# CONFIG_FREERTOS_USE_CAN is not set
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+# CONFIG_USE_LWIP is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+CONFIG_USE_TLSF=y
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+# CONFIG_FSL_SDMMC_ENABLE_SDIO is not set
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+# CONFIG_USE_FSL_WIFI is not set
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/sdio/figs/board.jpg b/example/peripheral/sdif/figs/board.jpg
similarity index 100%
rename from example/peripheral/sdio/figs/board.jpg
rename to example/peripheral/sdif/figs/board.jpg
diff --git a/example/peripheral/sdif/figs/emmc_wr.png b/example/peripheral/sdif/figs/emmc_wr.png
new file mode 100644
index 0000000000000000000000000000000000000000..4a481dd218477bd73bebe94d15f470f5ddee64a4
Binary files /dev/null and b/example/peripheral/sdif/figs/emmc_wr.png differ
diff --git a/example/peripheral/sdif/figs/tf_wr.png b/example/peripheral/sdif/figs/tf_wr.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb1deccb10de2bb4c2336c0b6df57958923b8fbc
Binary files /dev/null and b/example/peripheral/sdif/figs/tf_wr.png differ
diff --git a/example/peripheral/sdif/inc/sdif_read_write.h b/example/peripheral/sdif/inc/sdif_read_write.h
new file mode 100644
index 0000000000000000000000000000000000000000..344877cf46b4460fcbe7c7dde767a263ee4cfc34
--- /dev/null
+++ b/example/peripheral/sdif/inc/sdif_read_write.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: sd_read_write.h
+ * Date: 2022-07-18 16:43:35
+ * LastEditTime: 2022-07-18 16:43:35
+ * Description: This file is for providing some sd apis.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 zhugengyu 2022/8/26 first commit
+ */
+#ifndef SD_READ_WRITE_H
+#define SD_READ_WRITE_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/***************************** Include Files *********************************/
+#include "sdkconfig.h"
+#include "fkernel.h"
+/************************** Constant Definitions *****************************/
+#define SD_WORK_IRQ TRUE /* 0 for POLL mode, 1 for IRQ mode */
+#define SD_WORK_DMA TRUE /* 0 for PIO mode, 1 for DMA mode */
+#ifdef CONFIG_TARGET_PHYTIUMPI
+#define SD_CONTROLLER_ID FSDIO0_ID
+#else
+#define SD_CONTROLLER_ID FSDIO1_ID
+#endif
+
+#if SD_WORK_DMA
+#define SD_MAX_RW_BLK 10U
+#else
+#define SD_MAX_RW_BLK 4U
+#endif
+
+#define SD_BLOCK_SIZE 512UL
+#define SD_START_BLOCK 0
+#define SD_USE_BLOCK 3
+/************************** Variable Definitions *****************************/
+extern u8 s_dma_buffer[SZ_1M * 4];
+extern u8 rw_buf[SD_MAX_RW_BLK * SD_BLOCK_SIZE];
+/***************** Macros (Inline Functions) Definitions *********************/
+
+/************************** Function Prototypes ******************************/
+
+/*****************************************************************************/
+BaseType_t FFreeRTOSTfWriteRead(void);
+BaseType_t FFreeRTOSeMMCWriteRead(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
\ No newline at end of file
diff --git a/example/peripheral/sdio/main.c b/example/peripheral/sdif/main.c
similarity index 92%
rename from example/peripheral/sdio/main.c
rename to example/peripheral/sdif/main.c
index e8ce4b27e36c7d85929435354d3b88f0a77e2c77..f0d71f2f4c607ef773bba8aeedcc42d2cb0211df 100644
--- a/example/peripheral/sdio/main.c
+++ b/example/peripheral/sdif/main.c
@@ -25,8 +25,6 @@
#include "shell.h"
#include "shell_port.h"
#include
-#include "sdmmc_system.h"
-#include "sd_read_write.h"
int main(void)
{
@@ -38,9 +36,6 @@ int main(void)
goto FAIL_EXIT;
}
- /* board init */
- sdmmc_sys_init();
-
vTaskStartScheduler();
while (1);
diff --git a/example/peripheral/sdio/makefile b/example/peripheral/sdif/makefile
similarity index 93%
rename from example/peripheral/sdio/makefile
rename to example/peripheral/sdif/makefile
index 13c14898d0f8ad5159f3e5baa6067deda58349eb..8cdbb131737371bf472dd0695f73ceba32b2c1a4 100644
--- a/example/peripheral/sdio/makefile
+++ b/example/peripheral/sdif/makefile
@@ -8,7 +8,6 @@ BOOT_IMG_NAME ?= freertos
USER_CSRC := main.c
USER_CSRC += $(wildcard src/*.c)
-USER_CSRC += $(wildcard ../common/*.c)
USER_ASRC :=
USER_CXXSRC :=
diff --git a/example/peripheral/sdif/sdkconfig b/example/peripheral/sdif/sdkconfig
new file mode 100644
index 0000000000000000000000000000000000000000..68fa5359b41e9d603f331133e5a69910b5694e22
--- /dev/null
+++ b/example/peripheral/sdif/sdkconfig
@@ -0,0 +1,375 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+CONFIG_ARCH_ARMV8_AARCH64=y
+# CONFIG_ARCH_ARMV8_AARCH32 is not set
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH64=y
+CONFIG_ARCH_EXECUTION_STATE="aarch64"
+CONFIG_ARM_NEON=y
+CONFIG_ARM_CRC=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_ARM_FLOAT_POINT=y
+# CONFIG_GCC_CODE_MODEL_TINY is not set
+CONFIG_GCC_CODE_MODEL_SMALL=y
+# CONFIG_GCC_CODE_MODEL_LARGE is not set
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
+# CONFIG_MMU_DEBUG_PRINTS is not set
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+CONFIG_TARGET_E2000Q=y
+# CONFIG_TARGET_E2000D is not set
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="q"
+CONFIG_SOC_CORE_NUM=4
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_BOARD_NAME="demo"
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+CONFIG_E2000Q_DEMO_BOARD=y
+
+#
+# IO mux configuration when board start up
+#
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="sdif"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_WARN is not set
+CONFIG_LOG_ERROR=y
+# CONFIG_LOG_NONE is not set
+CONFIG_LOG_EXTRA_INFO=y
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+# CONFIG_USE_GPIO is not set
+# CONFIG_USE_ETH is not set
+# CONFIG_USE_CAN is not set
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+CONFIG_USE_SDMMC=y
+# CONFIG_ENABLE_FSDMMC is not set
+CONFIG_ENABLE_FSDIF=y
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+CONFIG_CHECK_DEPS=y
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+# CONFIG_DEBUG_SYMBOLS is not set
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_OUTPUT_ASM_DIS is not set
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+CONFIG_USE_COMPILE_CHAIN=y
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_STACK_SIZE=0x400
+CONFIG_FPU_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+# CONFIG_FREERTOS_USE_CAN is not set
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+# CONFIG_USE_LWIP is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+CONFIG_USE_TLSF=y
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+# CONFIG_FSL_SDMMC_ENABLE_SDIO is not set
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+# CONFIG_USE_FSL_WIFI is not set
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/sdif/sdkconfig.h b/example/peripheral/sdif/sdkconfig.h
new file mode 100644
index 0000000000000000000000000000000000000000..cfa8e9f8b32b8278de8769b1668b6271f23c0f69
--- /dev/null
+++ b/example/peripheral/sdif/sdkconfig.h
@@ -0,0 +1,335 @@
+#ifndef SDK_CONFIG_H__
+#define SDK_CONFIG_H__
+
+#define CONFIG_USE_FREERTOS
+
+/* Arch configuration */
+
+#define CONFIG_TARGET_ARMv8
+#define CONFIG_ARCH_NAME "armv8"
+
+/* Arm architecture configuration */
+
+#define CONFIG_ARCH_ARMV8_AARCH64
+/* CONFIG_ARCH_ARMV8_AARCH32 is not set */
+
+/* Compiler configuration */
+
+#define CONFIG_ARM_GCC_SELECT
+/* CONFIG_ARM_CLANG_SELECT is not set */
+#define CONFIG_TOOLCHAIN_NAME "gcc"
+#define CONFIG_TARGET_ARMV8_AARCH64
+#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
+#define CONFIG_ARM_NEON
+#define CONFIG_ARM_CRC
+#define CONFIG_ARM_CRYPTO
+#define CONFIG_ARM_FLOAT_POINT
+/* CONFIG_GCC_CODE_MODEL_TINY is not set */
+#define CONFIG_GCC_CODE_MODEL_SMALL
+/* CONFIG_GCC_CODE_MODEL_LARGE is not set */
+/* end of Compiler configuration */
+#define CONFIG_USE_CACHE
+#define CONFIG_USE_MMU
+/* CONFIG_BOOT_WITH_FLUSH_CACHE is not set */
+/* CONFIG_MMU_DEBUG_PRINTS is not set */
+/* end of Arm architecture configuration */
+/* end of Arch configuration */
+
+/* Soc configuration */
+
+/* CONFIG_TARGET_PHYTIUMPI is not set */
+#define CONFIG_TARGET_E2000Q
+/* CONFIG_TARGET_E2000D is not set */
+/* CONFIG_TARGET_E2000S is not set */
+/* CONFIG_TARGET_FT2004 is not set */
+/* CONFIG_TARGET_D2000 is not set */
+#define CONFIG_SOC_NAME "e2000"
+#define CONFIG_TARGET_TYPE_NAME "q"
+#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
+#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
+#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
+#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
+#define CONFIG_TARGET_E2000
+/* CONFIG_USE_SPINLOCK is not set */
+#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
+/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
+/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
+/* end of Soc configuration */
+
+/* Board Configuration */
+
+#define CONFIG_BOARD_NAME "demo"
+/* CONFIG_USE_SPI_IOPAD is not set */
+/* CONFIG_USE_GPIO_IOPAD is not set */
+/* CONFIG_USE_CAN_IOPAD is not set */
+/* CONFIG_USE_QSPI_IOPAD is not set */
+/* CONFIG_USE_PWM_IOPAD is not set */
+/* CONFIG_USE_MIO_IOPAD is not set */
+/* CONFIG_USE_TACHO_IOPAD is not set */
+/* CONFIG_USE_UART_IOPAD is not set */
+/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
+#define CONFIG_E2000Q_DEMO_BOARD
+
+/* IO mux configuration when board start up */
+
+/* end of IO mux configuration when board start up */
+/* CONFIG_CUS_DEMO_BOARD is not set */
+
+/* Build project name */
+
+#define CONFIG_TARGET_NAME "sdif"
+/* end of Build project name */
+/* end of Board Configuration */
+
+/* Sdk common configuration */
+
+/* CONFIG_LOG_VERBOS is not set */
+/* CONFIG_LOG_DEBUG is not set */
+/* CONFIG_LOG_INFO is not set */
+/* CONFIG_LOG_WARN is not set */
+#define CONFIG_LOG_ERROR
+/* CONFIG_LOG_NONE is not set */
+#define CONFIG_LOG_EXTRA_INFO
+/* CONFIG_LOG_DISPALY_CORE_NUM is not set */
+/* CONFIG_BOOTUP_DEBUG_PRINTS is not set */
+#define CONFIG_USE_DEFAULT_INTERRUPT_CONFIG
+#define CONFIG_INTERRUPT_ROLE_MASTER
+/* CONFIG_INTERRUPT_ROLE_SLAVE is not set */
+/* end of Sdk common configuration */
+
+/* Image information configuration */
+
+/* CONFIG_IMAGE_INFO is not set */
+/* end of Image information configuration */
+
+/* Drivers configuration */
+
+#define CONFIG_USE_IOMUX
+/* CONFIG_ENABLE_IOCTRL is not set */
+#define CONFIG_ENABLE_IOPAD
+/* CONFIG_USE_SPI is not set */
+/* CONFIG_USE_QSPI is not set */
+#define CONFIG_USE_SERIAL
+
+/* Usart Configuration */
+
+#define CONFIG_ENABLE_Pl011_UART
+/* end of Usart Configuration */
+/* CONFIG_USE_GPIO is not set */
+/* CONFIG_USE_ETH is not set */
+/* CONFIG_USE_CAN is not set */
+/* CONFIG_USE_I2C is not set */
+/* CONFIG_USE_TIMER is not set */
+/* CONFIG_USE_MIO is not set */
+#define CONFIG_USE_SDMMC
+/* CONFIG_ENABLE_FSDMMC is not set */
+#define CONFIG_ENABLE_FSDIF
+/* CONFIG_USE_PCIE is not set */
+/* CONFIG_USE_WDT is not set */
+/* CONFIG_USE_DMA is not set */
+/* CONFIG_USE_NAND is not set */
+/* CONFIG_USE_RTC is not set */
+/* CONFIG_USE_SATA is not set */
+/* CONFIG_USE_USB is not set */
+/* CONFIG_USE_ADC is not set */
+/* CONFIG_USE_PWM is not set */
+/* CONFIG_USE_IPC is not set */
+/* CONFIG_USE_MEDIA is not set */
+/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
+/* end of Drivers configuration */
+
+/* Build setup */
+
+#define CONFIG_CHECK_DEPS
+#define CONFIG_OUTPUT_BINARY
+
+/* Optimization options */
+
+/* CONFIG_DEBUG_NOOPT is not set */
+/* CONFIG_DEBUG_CUSTOMOPT is not set */
+#define CONFIG_DEBUG_FULLOPT
+/* CONFIG_DEBUG_ENABLE_ALL_WARNING is not set */
+#define CONFIG_DEBUG_OPT_UNUSED_SECTIONS
+#define CONFIG_DEBUG_LINK_MAP
+/* CONFIG_CCACHE is not set */
+/* CONFIG_ARCH_COVERAGE is not set */
+/* CONFIG_LTO_FULL is not set */
+/* end of Optimization options */
+
+/* Debug options */
+
+/* CONFIG_WALL_WARNING_ERROR is not set */
+/* CONFIG_STRICT_PROTOTYPES is not set */
+/* CONFIG_DEBUG_SYMBOLS is not set */
+/* CONFIG_FRAME_POINTER is not set */
+/* CONFIG_OUTPUT_ASM_DIS is not set */
+/* CONFIG_ENABLE_WSHADOW is not set */
+/* CONFIG_ENABLE_WUNDEF is not set */
+#define CONFIG_DOWNGRADE_DIAG_WARNING
+/* end of Debug options */
+
+/* Lib */
+
+#define CONFIG_USE_COMPILE_CHAIN
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
+/* end of Lib */
+/* CONFIG_ENABLE_CXX is not set */
+
+/* Linker Options */
+
+#define CONFIG_DEFAULT_LINKER_SCRIPT
+/* CONFIG_USER_DEFINED_LD is not set */
+#define CONFIG_IMAGE_LOAD_ADDRESS 0x80100000
+#define CONFIG_IMAGE_MAX_LENGTH 0x1000000
+#define CONFIG_HEAP_SIZE 1
+#define CONFIG_STACK_SIZE 0x400
+#define CONFIG_FPU_STACK_SIZE 0x1000
+/* end of Linker Options */
+/* end of Build setup */
+
+/* Component Configuration */
+
+/* Freertos Uart Drivers */
+
+#define CONFIG_FREERTOS_USE_UART
+/* end of Freertos Uart Drivers */
+
+/* Freertos Pwm Drivers */
+
+/* CONFIG_FREERTOS_USE_PWM is not set */
+/* end of Freertos Pwm Drivers */
+
+/* Freertos Qspi Drivers */
+
+/* CONFIG_FREERTOS_USE_QSPI is not set */
+/* end of Freertos Qspi Drivers */
+
+/* Freertos Wdt Drivers */
+
+/* CONFIG_FREERTOS_USE_WDT is not set */
+/* end of Freertos Wdt Drivers */
+
+/* Freertos Eth Drivers */
+
+/* CONFIG_FREERTOS_USE_XMAC is not set */
+/* CONFIG_FREERTOS_USE_GMAC is not set */
+/* end of Freertos Eth Drivers */
+
+/* Freertos Gpio Drivers */
+
+/* CONFIG_FREERTOS_USE_GPIO is not set */
+/* end of Freertos Gpio Drivers */
+
+/* Freertos Spim Drivers */
+
+/* CONFIG_FREERTOS_USE_FSPIM is not set */
+/* end of Freertos Spim Drivers */
+
+/* Freertos DMA Drivers */
+
+/* CONFIG_FREERTOS_USE_FDDMA is not set */
+/* CONFIG_FREERTOS_USE_FGDMA is not set */
+/* end of Freertos DMA Drivers */
+
+/* Freertos Adc Drivers */
+
+/* CONFIG_FREERTOS_USE_ADC is not set */
+/* end of Freertos Adc Drivers */
+
+/* Freertos Can Drivers */
+
+/* CONFIG_FREERTOS_USE_CAN is not set */
+/* end of Freertos Can Drivers */
+
+/* Freertos I2c Drivers */
+
+/* CONFIG_FREERTOS_USE_I2C is not set */
+/* end of Freertos I2c Drivers */
+
+/* Freertos Mio Drivers */
+
+/* CONFIG_FREERTOS_USE_MIO is not set */
+/* end of Freertos Mio Drivers */
+
+/* Freertos Timer Drivers */
+
+/* CONFIG_FREERTOS_USE_TIMER is not set */
+/* end of Freertos Timer Drivers */
+
+/* Freertos Media Drivers */
+
+/* CONFIG_FREERTOS_USE_MEDIA is not set */
+/* end of Freertos Media Drivers */
+/* end of Component Configuration */
+
+/* Third-party configuration */
+
+/* CONFIG_USE_LWIP is not set */
+#define CONFIG_USE_LETTER_SHELL
+
+/* Letter Shell Configuration */
+
+#define CONFIG_LS_PL011_UART
+#define CONFIG_DEFAULT_LETTER_SHELL_USE_UART1
+/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set */
+/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
+/* end of Letter Shell Configuration */
+/* CONFIG_USE_AMP is not set */
+/* CONFIG_USE_YMODEM is not set */
+/* CONFIG_USE_SFUD is not set */
+#define CONFIG_USE_BACKTRACE
+/* CONFIG_USE_FATFS_0_1_4 is not set */
+#define CONFIG_USE_TLSF
+/* CONFIG_USE_SPIFFS is not set */
+/* CONFIG_USE_LITTLE_FS is not set */
+/* CONFIG_USE_LVGL is not set */
+/* CONFIG_USE_FREEMODBUS is not set */
+/* CONFIG_USE_CHERRY_USB is not set */
+#define CONFIG_USE_FSL_SDMMC
+
+/* FSL Sdmmc configuration */
+
+/* Host configuration */
+
+#define CONFIG_FSL_SDMMC_USE_FSDIF
+/* CONFIG_FSL_SDMMC_USE_FSDMMC is not set */
+/* end of Host configuration */
+
+/* Protocol configuration */
+
+#define CONFIG_FSL_SDMMC_ENABLE_SD
+#define CONFIG_FSL_SDMMC_ENABLE_MMC
+/* CONFIG_FSL_SDMMC_ENABLE_SDIO is not set */
+/* CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set */
+/* end of Protocol configuration */
+/* end of FSL Sdmmc configuration */
+/* CONFIG_USE_FSL_WIFI is not set */
+/* end of Third-party configuration */
+
+/* FreeRTOS Kernel Configuration */
+
+#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
+#define CONFIG_FREERTOS_HZ 1000
+#define CONFIG_FREERTOS_MAX_PRIORITIES 32
+#define CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES 13
+#define CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES 11
+#define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1
+#define CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE 1024
+#define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 32
+#define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1
+#define CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH 2048
+#define CONFIG_FREERTOS_TIMER_QUEUE_LENGTH 10
+#define CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE 0
+#define CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS
+#define CONFIG_FREERTOS_USE_TRACE_FACILITY
+#define CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS
+/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
+#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
+#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
+
+#endif
diff --git a/example/peripheral/sdio/src/cmd_sd.c b/example/peripheral/sdif/src/cmd_sd.c
similarity index 65%
rename from example/peripheral/sdio/src/cmd_sd.c
rename to example/peripheral/sdif/src/cmd_sd.c
index 7f8578330bd27381fe112f671ce588cf529aef64..9603d059b7d3ad5f1f042fd8fdfd89f76e07fa01 100644
--- a/example/peripheral/sdio/src/cmd_sd.c
+++ b/example/peripheral/sdif/src/cmd_sd.c
@@ -30,7 +30,7 @@
#include "FreeRTOS.h"
#include "../src/shell.h"
-#include "sd_read_write.h"
+#include "sdif_read_write.h"
/************************** Constant Definitions *****************************/
/**************************** Type Definitions *******************************/
@@ -45,13 +45,16 @@
static void SdCmdUsage()
{
printf("Usage:\r\n");
- printf(" sd wr \r\n");
+ printf(" sd tf\r\n");
+ printf(" -- Demo read and write by sdmmc\r\n");
+ printf(" sd emmc\r\n");
printf(" -- Demo read and write by sdmmc\r\n");
}
static int SdCmdEntry(int argc, char *argv[])
{
int ret = 0;
+ BaseType_t task_ret = 0U;
if (argc < 2)
{
@@ -59,45 +62,18 @@ static int SdCmdEntry(int argc, char *argv[])
return -1;
}
- if (!strcmp(argv[1], "wr"))
+ if (!strcmp(argv[1], "tf"))
{
- u32 sdio_id = FSDIO1_ID;
- boolean is_emmc = FALSE;
- u32 start_blk = 0U;
- u32 blk_num = 2U;
-
- if (argc > 2)
- {
- sdio_id = (u32)simple_strtoul(argv[2], NULL, 10); /* sdio instance id */
- }
-
- if (argc > 3)
- {
- if (!strcmp(argv[3], "emmc")) /* probe medium as emmc */
- {
- is_emmc = TRUE;
- }
- else if (!strcmp(argv[3], "tf")) /* probe medium as tf card */
- {
- is_emmc = FALSE;
- }
- }
-
- if (argc > 4)
- {
- start_blk = (u32)simple_strtoul(argv[4], NULL, 10);
- }
-
- if (argc > 5)
- {
- blk_num = (u32)simple_strtoul(argv[5], NULL, 10);
- }
+ task_ret = FFreeRTOSTfWriteRead();
+ }
+ else if (!strcmp(argv[1], "emmc"))
+ {
+ task_ret = FFreeRTOSeMMCWriteRead();
+ }
- BaseType_t task_ret = FFreeRTOSSdWriteRead(sdio_id, is_emmc, start_blk, blk_num);
- if (pdPASS != task_ret)
- {
- return -2;
- }
+ if (pdPASS != task_ret)
+ {
+ return -2;
}
return 0;
diff --git a/example/peripheral/sdif/src/sdif_emmc_read_write.c b/example/peripheral/sdif/src/sdif_emmc_read_write.c
new file mode 100644
index 0000000000000000000000000000000000000000..1b45aa2323ff315e4e9dbc4724833326ef8dc362
--- /dev/null
+++ b/example/peripheral/sdif/src/sdif_emmc_read_write.c
@@ -0,0 +1,265 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: sd_read_write.c
+ * Date: 2022-07-25 15:58:24
+ * LastEditTime: 2022-07-25 15:58:25
+ * Description: This file is for providing functions used in cmd_sd.c file.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 zhugengyu 2022/8/26 first commit
+ */
+/***************************** Include Files *********************************/
+#include
+#include
+
+#include "FreeRTOS.h"
+#include "task.h"
+#include "event_groups.h"
+
+#include "fassert.h"
+#include "fdebug.h"
+#include "fsleep.h"
+#include "fkernel.h"
+#include "fcache.h"
+#include "fio.h"
+
+#include "fsdif_timing.h"
+#include "fsl_sdmmc.h"
+#include "sdif_read_write.h"
+/************************** Constant Definitions *****************************/
+#define SD_EVT_INIT_DONE (0x1 << 0)
+#define SD_EVT_WRITE_DONE (0x1 << 1)
+#define SD_EVT_READ_DONE (0x1 << 2)
+
+enum
+{
+ FSD_EXAMPLE_OK = 0,
+ FSD_EXAMPLE_NOT_YET_INIT,
+ FSD_EXAMPLE_INIT_FAILED,
+ FSD_EXAMPLE_INVALID_PARAM,
+ FSD_EXAMPLE_READ_WRITE_FAILED,
+};
+/**************************** Type Definitions *******************************/
+
+/************************** Variable Definitions *****************************/
+static sdmmchost_config_t s_inst_config;
+static sdmmc_mmc_t s_inst;
+
+static EventGroupHandle_t sync = NULL;
+static TaskHandle_t write_task = NULL;
+static TimerHandle_t exit_timer = NULL;
+static boolean is_running = FALSE;
+static u32 run_times = 1U;
+/***************** Macros (Inline Functions) Definitions *********************/
+#define FSD_EXAMPLE_TAG "FSD_EXAMPLE"
+#define FSD_ERROR(format, ...) FT_DEBUG_PRINT_E(FSD_EXAMPLE_TAG, format, ##__VA_ARGS__)
+#define FSD_WARN(format, ...) FT_DEBUG_PRINT_W(FSD_EXAMPLE_TAG, format, ##__VA_ARGS__)
+#define FSD_INFO(format, ...) FT_DEBUG_PRINT_I(FSD_EXAMPLE_TAG, format, ##__VA_ARGS__)
+#define FSD_DEBUG(format, ...) FT_DEBUG_PRINT_D(FSD_EXAMPLE_TAG, format, ##__VA_ARGS__)
+/************************** Function Prototypes ******************************/
+
+/*****************************************************************************/
+static void eMMCExitCallback(TimerHandle_t timer)
+{
+ FError err = FT_SUCCESS;
+ printf("Exiting.....\r\n");
+
+ if (write_task)
+ {
+ vTaskDelete(write_task);
+ write_task = NULL;
+ }
+
+ if (sync)
+ {
+ vEventGroupDelete(sync);
+ sync = NULL;
+ }
+
+ if (pdPASS != xTimerDelete(timer, 0)) /* delete timer ifself */
+ {
+ FSD_ERROR("Delete exit timer failed.");
+ exit_timer = NULL;
+ }
+
+ MMC_Deinit(&s_inst.card);
+ SDMMC_OSADeInit();
+ FSdifTimingDeinit();
+
+ is_running = FALSE;
+}
+
+static void eMMCSendEvent(u32 evt_bits)
+{
+ FASSERT(sync);
+ BaseType_t x_result = pdFALSE;
+
+ FSD_DEBUG("Ack evt 0x%x", evt_bits);
+ x_result = xEventGroupSetBits(sync, evt_bits);
+}
+
+static boolean eMMCWaitEvent(u32 evt_bits, TickType_t wait_delay)
+{
+ FASSERT(sync);
+ EventBits_t ev;
+ ev = xEventGroupWaitBits(sync, evt_bits,
+ pdTRUE, pdFALSE, wait_delay); /* wait for cmd/data done */
+ if (ev & evt_bits)
+ {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void eMMCInitTask(void *args)
+{
+ status_t err = 0;
+
+ err = MMC_CfgInitialize(&s_inst, &s_inst_config);
+ if (kStatus_Success != err)
+ {
+ FSD_ERROR("Init MMC failed, err = %d !!!", err);
+ goto task_exit;
+ }
+
+ eMMCSendEvent(SD_EVT_INIT_DONE);
+
+task_exit:
+ vTaskDelete(NULL); /* delete task itself */
+}
+
+static void eMMCWriteReadTask(void *args)
+{
+ u32 times = 0U;
+ const TickType_t wait_delay = pdMS_TO_TICKS(2000UL); /* wait for 2 seconds */
+ FError err;
+ const uintptr trans_len = SD_USE_BLOCK * SD_BLOCK_SIZE;
+
+ eMMCWaitEvent(SD_EVT_INIT_DONE, portMAX_DELAY);
+
+ for (;;)
+ {
+ /* do read and write operation */
+ {
+ printf("eMMC init success.\n");
+
+ for (u32 i = 0; i < SD_USE_BLOCK; i++) /* copy string to write buffer as each block */
+ {
+ memset(rw_buf + i * SD_BLOCK_SIZE, (SD_START_BLOCK + i + 1), SD_BLOCK_SIZE);
+ }
+
+ err = MMC_WriteBlocks(&s_inst.card, rw_buf, SD_START_BLOCK, SD_USE_BLOCK);
+ if (kStatus_Success != err)
+ {
+ FSD_ERROR("eMMC write fail.");
+ goto task_exit;
+ }
+
+ memset(rw_buf, 0, sizeof(rw_buf));
+
+ err = MMC_ReadBlocks(&s_inst.card, rw_buf, SD_START_BLOCK, SD_USE_BLOCK);
+ if ((kStatus_Success == err))
+ {
+ FtDumpHexByte(rw_buf, SD_BLOCK_SIZE * min((u32)2, (u32)SD_USE_BLOCK));
+ printf("%s@%d: eMMC read and write example success !!! \r\n", __func__, __LINE__);
+ }
+ else
+ {
+ FSD_ERROR("eMMC read fail.");
+ goto task_exit;
+ }
+ }
+
+ vTaskDelay(wait_delay);
+
+ if (++times > run_times)
+ {
+ break;
+ }
+ }
+
+task_exit:
+ printf("Exit from write task.\r\n");
+ vTaskSuspend(NULL); /* suspend task */
+}
+
+BaseType_t FFreeRTOSeMMCWriteRead(void)
+{
+ BaseType_t ret = pdPASS;
+ const TickType_t total_run_time = pdMS_TO_TICKS(30000UL); /* run for 10 secs deadline */
+
+ if (is_running)
+ {
+ FSD_ERROR("Task is running.");
+ return pdPASS;
+ }
+
+ FASSERT_MSG(NULL == sync, "Event group exists.");
+ FASSERT_MSG((sync = xEventGroupCreate()) != NULL, "Create event group failed.");
+
+ is_running = TRUE;
+
+ FSdifTimingInit();
+ SDMMC_OSAInit();
+
+ memset(&s_inst_config, 0, sizeof(s_inst_config));
+ memset(&s_inst, 0, sizeof(s_inst));
+
+ s_inst_config.hostId = FSDIF0_ID;
+ s_inst_config.hostType = kSDMMCHOST_TYPE_FSDIF;
+ s_inst_config.cardType = kSDMMCHOST_CARD_TYPE_EMMC;
+ s_inst_config.enableDMA = SD_WORK_DMA;
+ s_inst_config.enableIrq = SD_WORK_IRQ;
+ s_inst_config.timeTuner = FSdifGetTimingSetting;
+ s_inst_config.endianMode = kSDMMCHOST_EndianModeLittle;
+ s_inst_config.maxTransSize = SD_MAX_RW_BLK * SD_BLOCK_SIZE;
+ s_inst_config.defBlockSize = SD_BLOCK_SIZE;
+ s_inst_config.cardClock = MMC_CLOCK_52MHZ;
+
+ ret = xTaskCreate((TaskFunction_t)eMMCInitTask,
+ (const char *)"eMMCInitTask",
+ (uint16_t)2048,
+ NULL,
+ (UBaseType_t)configMAX_PRIORITIES - 1,
+ NULL);
+ FASSERT_MSG(pdPASS == ret, "Create task failed.");
+
+ ret = xTaskCreate((TaskFunction_t)eMMCWriteReadTask,
+ (const char *)"eMMCInitTask",
+ (uint16_t)2048,
+ NULL,
+ (UBaseType_t)configMAX_PRIORITIES - 2,
+ &write_task);
+
+ FASSERT_MSG(pdPASS == ret, "Create task failed.");
+
+ exit_timer = xTimerCreate("Exit-Timer", /* Text name for the software timer - not used by FreeRTOS. */
+ total_run_time, /* The software timer's period in ticks. */
+ pdFALSE, /* Setting uxAutoRealod to pdFALSE creates a one-shot software timer. */
+ NULL, /* use timer id to pass task data for reference. */
+ eMMCExitCallback); /* The callback function to be used by the software timer being created. */
+
+ FASSERT_MSG(NULL != exit_timer, "Create exit timer failed.");
+
+ taskEXIT_CRITICAL(); /* allow schedule since task created */
+
+ ret = xTimerStart(exit_timer, 0); /* start */
+
+ FASSERT_MSG(pdPASS == ret, "Start exit timer failed.");
+
+ return ret;
+}
\ No newline at end of file
diff --git a/example/peripheral/sdio/src/sd_read_write.c b/example/peripheral/sdif/src/sdif_tf_read_write.c
similarity index 52%
rename from example/peripheral/sdio/src/sd_read_write.c
rename to example/peripheral/sdif/src/sdif_tf_read_write.c
index c6e62ed1cb1025ab6ecdb6cc881505bb5e6a8274..594c8b9e3a1fe7d4a698094bb056c3e0a941f0d1 100644
--- a/example/peripheral/sdio/src/sd_read_write.c
+++ b/example/peripheral/sdif/src/sdif_tf_read_write.c
@@ -36,53 +36,46 @@
#include "fcache.h"
#include "fio.h"
-#include "sdmmc_host_os.h"
+#include "fsdif_timing.h"
+#include "fsl_sdmmc.h"
+#include "sdif_read_write.h"
/************************** Constant Definitions *****************************/
-#define SD_WR_BUF_LEN 4096
#define SD_EVT_INIT_DONE (0x1 << 0)
#define SD_EVT_WRITE_DONE (0x1 << 1)
#define SD_EVT_READ_DONE (0x1 << 2)
-/**************************** Type Definitions *******************************/
-typedef struct
-{
- sdmmc_host_instance_t *cur_host;
- sdmmc_host_config_t *cur_host_config;
- fsize_t start_blk;
- fsize_t block_num;
-} SdioTestInfo;
-/************************** Variable Definitions *****************************/
-static u8 sd_write_buffer[SD_WR_BUF_LEN] = {0};
-static u8 sd_read_buffer[SD_WR_BUF_LEN] = {0};
-
-static sdmmc_host_instance_t tf_host;
-static sdmmc_host_config_t tf_host_config;
-static sdmmc_host_instance_t emmc_host;
-static sdmmc_host_config_t emmc_host_config;
-static SdioTestInfo test_info =
+
+enum
{
- .cur_host = &tf_host,
- .cur_host_config = &tf_host_config,
- .start_blk = 0U,
- .block_num = 4U
+ FSD_EXAMPLE_OK = 0,
+ FSD_EXAMPLE_NOT_YET_INIT,
+ FSD_EXAMPLE_INIT_FAILED,
+ FSD_EXAMPLE_INVALID_PARAM,
+ FSD_EXAMPLE_READ_WRITE_FAILED,
};
+/**************************** Type Definitions *******************************/
+
+/************************** Variable Definitions *****************************/
+static sdmmchost_config_t s_inst_config;
+static sdmmc_sd_t s_inst;
-static u32 sd_slot = 0U;
static EventGroupHandle_t sync = NULL;
static TaskHandle_t write_task = NULL;
static TimerHandle_t exit_timer = NULL;
-static u32 run_times = 2U;
static boolean is_running = FALSE;
-/***************** Macros (Inline Functions) Definitions *********************/
-#define FSDIO_DEBUG_TAG "FSDIO-SD"
-#define FSDIO_ERROR(format, ...) FT_DEBUG_PRINT_E(FSDIO_DEBUG_TAG, format, ##__VA_ARGS__)
-#define FSDIO_WARN(format, ...) FT_DEBUG_PRINT_W(FSDIO_DEBUG_TAG, format, ##__VA_ARGS__)
-#define FSDIO_INFO(format, ...) FT_DEBUG_PRINT_I(FSDIO_DEBUG_TAG, format, ##__VA_ARGS__)
-#define FSDIO_DEBUG(format, ...) FT_DEBUG_PRINT_D(FSDIO_DEBUG_TAG, format, ##__VA_ARGS__)
+static u32 run_times = 1U;
+uint8_t s_dma_buffer[SZ_1M * 4] = {0};
+u8 rw_buf[SD_MAX_RW_BLK * SD_BLOCK_SIZE] __attribute((aligned(SD_BLOCK_SIZE))) = {0};
+/***************** Macros (Inline Functions) Definitions *********************/
+#define FSD_EXAMPLE_TAG "FSD_EXAMPLE"
+#define FSD_ERROR(format, ...) FT_DEBUG_PRINT_E(FSD_EXAMPLE_TAG, format, ##__VA_ARGS__)
+#define FSD_WARN(format, ...) FT_DEBUG_PRINT_W(FSD_EXAMPLE_TAG, format, ##__VA_ARGS__)
+#define FSD_INFO(format, ...) FT_DEBUG_PRINT_I(FSD_EXAMPLE_TAG, format, ##__VA_ARGS__)
+#define FSD_DEBUG(format, ...) FT_DEBUG_PRINT_D(FSD_EXAMPLE_TAG, format, ##__VA_ARGS__)
/************************** Function Prototypes ******************************/
/*****************************************************************************/
-static void SDExitCallback(TimerHandle_t timer)
+static void TfExitCallback(TimerHandle_t timer)
{
FError err = FT_SUCCESS;
printf("Exiting.....\r\n");
@@ -101,23 +94,27 @@ static void SDExitCallback(TimerHandle_t timer)
if (pdPASS != xTimerDelete(timer, 0)) /* delete timer ifself */
{
- FSDIO_ERROR("Delete exit timer failed.");
+ FSD_ERROR("Delete exit timer failed.");
exit_timer = NULL;
}
+ SD_Deinit(&s_inst.card);
+ SDMMC_OSADeInit();
+ FSdifTimingDeinit();
+
is_running = FALSE;
}
-static void SDSendEvent(u32 evt_bits)
+static void TfSendEvent(u32 evt_bits)
{
FASSERT(sync);
BaseType_t x_result = pdFALSE;
- FSDIO_DEBUG("Ack evt 0x%x", evt_bits);
+ FSD_DEBUG("Ack evt 0x%x", evt_bits);
x_result = xEventGroupSetBits(sync, evt_bits);
}
-static boolean SDWaitEvent(u32 evt_bits, TickType_t wait_delay)
+static boolean SDTfWaitEvent(u32 evt_bits, TickType_t wait_delay)
{
FASSERT(sync);
EventBits_t ev;
@@ -131,72 +128,63 @@ static boolean SDWaitEvent(u32 evt_bits, TickType_t wait_delay)
return FALSE;
}
-static void SDInitTask(void *args)
+static void TfInitTask(void *args)
{
- if (SDMMC_OK != sdmmc_host_init(test_info.cur_host, test_info.cur_host_config))
+ status_t err = 0;
+
+ err = SD_CfgInitialize(&s_inst, &s_inst_config);
+ if (kStatus_Success != err)
{
- FSDIO_ERROR("Init sdio failed.");
+ FSD_ERROR("Init SD failed, err = %d !!!", err);
goto task_exit;
}
- SDSendEvent(SD_EVT_INIT_DONE);
+ TfSendEvent(SD_EVT_INIT_DONE);
task_exit:
vTaskDelete(NULL); /* delete task itself */
}
-static void SDWriteReadTask(void *args)
+static void TfWriteReadTask(void *args)
{
u32 times = 0U;
const TickType_t wait_delay = pdMS_TO_TICKS(2000UL); /* wait for 2 seconds */
FError err;
- const uintptr trans_len = test_info.block_num * 512U;
- char ch = 'A';
-
- if (trans_len > SD_WR_BUF_LEN)
- {
- FSDIO_ERROR("Trans length exceeds the buffer limits.");
- goto task_exit;
- }
+ const uintptr trans_len = SD_USE_BLOCK * SD_BLOCK_SIZE;
- SDWaitEvent(SD_EVT_INIT_DONE, portMAX_DELAY);
+ SDTfWaitEvent(SD_EVT_INIT_DONE, portMAX_DELAY);
for (;;)
{
- printf("Start reading ...\r\n");
- memset(sd_read_buffer, 0U, trans_len);
- if (SDMMC_OK != sdmmc_os_read_sectors(&(test_info.cur_host->card),
- sd_read_buffer,
- test_info.start_blk,
- test_info.block_num))
+ /* do read and write operation */
{
- FSDIO_ERROR("Sdio read failed.");
- goto task_exit;
- }
-
- FCacheDCacheFlushRange((uintptr)(void *)sd_read_buffer, trans_len);
- printf("==>Read from Block [%d:%d]\r\n",
- test_info.start_blk,
- test_info.start_blk + test_info.block_num);
-
- FtDumpHexByte(sd_read_buffer, min(trans_len, (fsize_t)(2 * 512U)));
-
- /*************************************************************/
-
- printf("Start writing ...\r\n");
- memset(sd_write_buffer, (ch + times), trans_len);
- printf("==>Write %c to Block [%d:%d]\r\n",
- ch,
- test_info.start_blk,
- test_info.start_blk + test_info.block_num);
-
- if (SDMMC_OK != sdmmc_os_write_sectors(&(test_info.cur_host->card),
- sd_write_buffer,
- test_info.start_blk,
- test_info.block_num))
- {
- FSDIO_ERROR("Sdio write failed.");
- goto task_exit;
+ printf("TF card init success.\n");
+
+ for (u32 i = 0; i < SD_USE_BLOCK; i++) /* copy string to write buffer as each block */
+ {
+ memset(rw_buf + i * SD_BLOCK_SIZE, (SD_START_BLOCK + i + 1), SD_BLOCK_SIZE);
+ }
+
+ err = SD_WriteBlocks(&s_inst.card, rw_buf, SD_START_BLOCK, SD_USE_BLOCK);
+ if (kStatus_Success != err)
+ {
+ FSD_ERROR("TF card write fail.");
+ goto task_exit;
+ }
+
+ memset(rw_buf, 0, sizeof(rw_buf));
+
+ err = SD_ReadBlocks(&s_inst.card, rw_buf, SD_START_BLOCK, SD_USE_BLOCK);
+ if ((kStatus_Success == err))
+ {
+ FtDumpHexByte(rw_buf, SD_BLOCK_SIZE * min((u32)2, (u32)SD_USE_BLOCK));
+ printf("%s@%d: TF card read and write example success !!! \r\n", __func__, __LINE__);
+ }
+ else
+ {
+ FSD_ERROR("TF card read fail.");
+ goto task_exit;
+ }
}
vTaskDelay(wait_delay);
@@ -212,48 +200,50 @@ task_exit:
vTaskSuspend(NULL); /* suspend task */
}
-BaseType_t FFreeRTOSSdWriteRead(u32 slot_id, boolean is_emmc, u32 start_blk, u32 blk_num)
+BaseType_t FFreeRTOSTfWriteRead(void)
{
BaseType_t ret = pdPASS;
const TickType_t total_run_time = pdMS_TO_TICKS(30000UL); /* run for 10 secs deadline */
if (is_running)
{
- FSDIO_ERROR("Task is running.");
+ FSD_ERROR("Task is running.");
return pdPASS;
}
- is_running = TRUE;
-
- printf("This is sd write read task.\r\n");
-
FASSERT_MSG(NULL == sync, "Event group exists.");
FASSERT_MSG((sync = xEventGroupCreate()) != NULL, "Create event group failed.");
- test_info.cur_host = is_emmc ? &emmc_host : &tf_host;
- test_info.cur_host_config = is_emmc ? &emmc_host_config : &tf_host_config;
-
- test_info.cur_host_config->slot = slot_id;
- test_info.cur_host_config->type = SDMMC_HOST_TYPE_FSDIO;
- test_info.cur_host_config->flags = SDMMC_HOST_WORK_MODE_DMA | SDMMC_HOST_WORK_MODE_IRQ;
- test_info.cur_host_config->flags |= is_emmc ? 0U : SDMMC_HOST_REMOVABLE_CARD;
-
- test_info.start_blk = start_blk;
- test_info.block_num = blk_num;
- taskENTER_CRITICAL(); /* no schedule when create task */
-
- FtOut32((uintptr)0x32b31178, 0x1f); /* set delay of SDIO-1 on E2000 Demo otherwise detect may fail */
+ is_running = TRUE;
- ret = xTaskCreate((TaskFunction_t)SDInitTask,
- (const char *)"SDInitTask",
+ FSdifTimingInit();
+ SDMMC_OSAInit();
+
+ memset(&s_inst_config, 0, sizeof(s_inst_config));
+ memset(&s_inst, 0, sizeof(s_inst));
+
+ s_inst_config.hostId = FSDIF1_ID;
+ s_inst_config.hostType = kSDMMCHOST_TYPE_FSDIF;
+ s_inst_config.cardType = kSDMMCHOST_CARD_TYPE_MICRO_SD;
+ s_inst_config.enableDMA = SD_WORK_DMA;
+ s_inst_config.enableIrq = SD_WORK_IRQ;
+ s_inst_config.timeTuner = FSdifGetTimingSetting;
+ s_inst_config.endianMode = kSDMMCHOST_EndianModeLittle;
+ s_inst_config.maxTransSize = SD_MAX_RW_BLK * SD_BLOCK_SIZE;
+ s_inst_config.defBlockSize = SD_BLOCK_SIZE;
+ s_inst_config.cardClock = SD_CLOCK_50MHZ;
+ s_inst_config.isUHSCard = FALSE;
+
+ ret = xTaskCreate((TaskFunction_t)TfInitTask,
+ (const char *)"TfInitTask",
(uint16_t)2048,
NULL,
(UBaseType_t)configMAX_PRIORITIES - 1,
NULL);
FASSERT_MSG(pdPASS == ret, "Create task failed.");
- ret = xTaskCreate((TaskFunction_t)SDWriteReadTask,
- (const char *)"SDWriteReadTask",
+ ret = xTaskCreate((TaskFunction_t)TfWriteReadTask,
+ (const char *)"TfWriteReadTask",
(uint16_t)2048,
NULL,
(UBaseType_t)configMAX_PRIORITIES - 2,
@@ -265,7 +255,7 @@ BaseType_t FFreeRTOSSdWriteRead(u32 slot_id, boolean is_emmc, u32 start_blk, u32
total_run_time, /* The software timer's period in ticks. */
pdFALSE, /* Setting uxAutoRealod to pdFALSE creates a one-shot software timer. */
NULL, /* use timer id to pass task data for reference. */
- SDExitCallback); /* The callback function to be used by the software timer being created. */
+ TfExitCallback); /* The callback function to be used by the software timer being created. */
FASSERT_MSG(NULL != exit_timer, "Create exit timer failed.");
diff --git a/example/peripheral/sdio/figs/emmc_wr.png b/example/peripheral/sdio/figs/emmc_wr.png
deleted file mode 100644
index d49a9a9b4ddad033837e02225bb894e756b11ec9..0000000000000000000000000000000000000000
Binary files a/example/peripheral/sdio/figs/emmc_wr.png and /dev/null differ
diff --git a/example/peripheral/sdio/figs/tf_wr.png b/example/peripheral/sdio/figs/tf_wr.png
deleted file mode 100644
index 5ffb0f2d5cb5fdb4a8044d918a5f83cc46b4a919..0000000000000000000000000000000000000000
Binary files a/example/peripheral/sdio/figs/tf_wr.png and /dev/null differ
diff --git a/example/peripheral/spi/configs/e2000d_aarch32_demo_spi.config b/example/peripheral/spi/configs/e2000d_aarch32_demo_spi.config
index eb71130b21de28abfdcb3f6309be44927022bb6f..c7d210f712429ac7c1c7f8360dcb1cf7fa43713a 100644
--- a/example/peripheral/spi/configs/e2000d_aarch32_demo_spi.config
+++ b/example/peripheral/spi/configs/e2000d_aarch32_demo_spi.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -125,8 +127,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +154,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +194,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -322,7 +324,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -343,10 +344,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -366,4 +369,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/spi/configs/e2000d_aarch64_demo_spi.config b/example/peripheral/spi/configs/e2000d_aarch64_demo_spi.config
index 52ff1a83ca7d756d888ecb23770f84d6afb8235b..c197c7a7e5eb991c6fda0f07c624217ed48a3797 100644
--- a/example/peripheral/spi/configs/e2000d_aarch64_demo_spi.config
+++ b/example/peripheral/spi/configs/e2000d_aarch64_demo_spi.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -127,8 +121,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -156,6 +148,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -195,7 +188,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +314,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -341,10 +334,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -364,4 +359,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/spi/configs/e2000q_aarch32_demo_spi.config b/example/peripheral/spi/configs/e2000q_aarch32_demo_spi.config
index a19a15a7ec9ceea17ab88561e87d413e6e5bc265..03843029a4cf3eeda4584176e9ac4c35fac6b096 100644
--- a/example/peripheral/spi/configs/e2000q_aarch32_demo_spi.config
+++ b/example/peripheral/spi/configs/e2000q_aarch32_demo_spi.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +153,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,7 +323,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -342,10 +343,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -365,4 +368,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/spi/configs/e2000q_aarch64_demo_spi.config b/example/peripheral/spi/configs/e2000q_aarch64_demo_spi.config
index 8a773b2f0dd57573a274c0f02e91454e19c5287a..191c28309ebfe6c3b881a3932db699bfc7c100a7 100644
--- a/example/peripheral/spi/configs/e2000q_aarch64_demo_spi.config
+++ b/example/peripheral/spi/configs/e2000q_aarch64_demo_spi.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +147,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -340,10 +333,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -363,4 +358,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/spi/configs/phytiumpi_aarch32_firefly_spi.config b/example/peripheral/spi/configs/phytiumpi_aarch32_firefly_spi.config
index 7664b8a2e2f2154af9e7b11ddbc6048559d0bdd6..33f423f29eceb272a28076ef3814a090ff0bd68e 100644
--- a/example/peripheral/spi/configs/phytiumpi_aarch32_firefly_spi.config
+++ b/example/peripheral/spi/configs/phytiumpi_aarch32_firefly_spi.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +125,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -152,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -191,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +322,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -341,10 +342,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -364,4 +367,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/spi/configs/phytiumpi_aarch64_firefly_spi.config b/example/peripheral/spi/configs/phytiumpi_aarch64_firefly_spi.config
index 38e5c92e9f987bbf28caaa7c448ff93f2e268477..8f2d76e45270762b4dc6e35c41a020c573f7a5fc 100644
--- a/example/peripheral/spi/configs/phytiumpi_aarch64_firefly_spi.config
+++ b/example/peripheral/spi/configs/phytiumpi_aarch64_firefly_spi.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +146,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +186,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -318,7 +312,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -339,10 +332,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -362,4 +357,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/spi/sdkconfig b/example/peripheral/spi/sdkconfig
index 38e5c92e9f987bbf28caaa7c448ff93f2e268477..8f2d76e45270762b4dc6e35c41a020c573f7a5fc 100644
--- a/example/peripheral/spi/sdkconfig
+++ b/example/peripheral/spi/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +146,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +186,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -318,7 +312,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -339,10 +332,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -362,4 +357,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/spi/sdkconfig.h b/example/peripheral/spi/sdkconfig.h
index c7d8d827af86ceafb5fea41014f7d3f2957f252d..271f92d3629ef9889a5e8d1ef146c9d6854e67ff 100644
--- a/example/peripheral/spi/sdkconfig.h
+++ b/example/peripheral/spi/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -114,8 +110,6 @@
#define CONFIG_USE_SPI
#define CONFIG_USE_FSPIM
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -141,6 +135,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -176,7 +171,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -280,7 +276,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
#define CONFIG_USE_SFUD
@@ -299,9 +294,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -321,6 +318,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/peripheral/timer_tacho/configs/e2000d_aarch32_demo_timer.config b/example/peripheral/timer_tacho/configs/e2000d_aarch32_demo_timer.config
index 73f89d728c0d7660039d05a8186049ec23bca61b..dd69aad3b5d793e2710fd8e0218116a5a16241bd 100644
--- a/example/peripheral/timer_tacho/configs/e2000d_aarch32_demo_timer.config
+++ b/example/peripheral/timer_tacho/configs/e2000d_aarch32_demo_timer.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +159,7 @@ CONFIG_ENABLE_TIMER_TACHO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +199,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +329,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +339,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +364,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/timer_tacho/configs/e2000d_aarch64_demo_timer.config b/example/peripheral/timer_tacho/configs/e2000d_aarch64_demo_timer.config
index 3c3598a093a0f98b37019de210eec63f01752fca..56b5dd90a3bdde44a20c7d44392d2eed9f6728f0 100644
--- a/example/peripheral/timer_tacho/configs/e2000d_aarch64_demo_timer.config
+++ b/example/peripheral/timer_tacho/configs/e2000d_aarch64_demo_timer.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +153,7 @@ CONFIG_ENABLE_TIMER_TACHO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -325,7 +319,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -336,10 +329,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -359,4 +354,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/timer_tacho/configs/e2000q_aarch32_demo_timer.config b/example/peripheral/timer_tacho/configs/e2000q_aarch32_demo_timer.config
index 10395fb27ac83ad672bb29d32ecda49aeb78eb2b..1a3a4a0d1af69c3e6ad5c45c47eb3bf85524a41c 100644
--- a/example/peripheral/timer_tacho/configs/e2000q_aarch32_demo_timer.config
+++ b/example/peripheral/timer_tacho/configs/e2000q_aarch32_demo_timer.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -158,6 +158,7 @@ CONFIG_ENABLE_TIMER_TACHO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -197,7 +198,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +328,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +338,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +363,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/timer_tacho/configs/e2000q_aarch64_demo_timer.config b/example/peripheral/timer_tacho/configs/e2000q_aarch64_demo_timer.config
index dae15fabc623797715ad061ce0354ffb4cb1eb0a..f45bd3a54b80a24b66db270fdbf8b062386885d5 100644
--- a/example/peripheral/timer_tacho/configs/e2000q_aarch64_demo_timer.config
+++ b/example/peripheral/timer_tacho/configs/e2000q_aarch64_demo_timer.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -124,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +152,7 @@ CONFIG_ENABLE_TIMER_TACHO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -324,7 +318,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -335,10 +328,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -358,4 +353,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/timer_tacho/configs/phytiumpi_aarch32_firefly_timer.config b/example/peripheral/timer_tacho/configs/phytiumpi_aarch32_firefly_timer.config
index 306be1bbe6709ae5127d4e1f8091a29bce2ab9b0..97bd2e73d1e8dcf2ef3783418d95421ac3a59fc6 100644
--- a/example/peripheral/timer_tacho/configs/phytiumpi_aarch32_firefly_timer.config
+++ b/example/peripheral/timer_tacho/configs/phytiumpi_aarch32_firefly_timer.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -121,8 +123,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -157,6 +157,7 @@ CONFIG_ENABLE_TIMER_TACHO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -196,7 +197,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -325,7 +327,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -336,10 +337,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -359,4 +362,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/timer_tacho/configs/phytiumpi_aarch64_firefly_timer.config b/example/peripheral/timer_tacho/configs/phytiumpi_aarch64_firefly_timer.config
index 4270c65c97716c13fd7e604678e8a4d5f3190168..ac90d974164e5827127dd5a809aac6a8837259b5 100644
--- a/example/peripheral/timer_tacho/configs/phytiumpi_aarch64_firefly_timer.config
+++ b/example/peripheral/timer_tacho/configs/phytiumpi_aarch64_firefly_timer.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -123,8 +117,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +151,7 @@ CONFIG_ENABLE_TIMER_TACHO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +191,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -323,7 +317,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -334,10 +327,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -357,4 +352,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/timer_tacho/sdkconfig b/example/peripheral/timer_tacho/sdkconfig
index 4270c65c97716c13fd7e604678e8a4d5f3190168..ac90d974164e5827127dd5a809aac6a8837259b5 100644
--- a/example/peripheral/timer_tacho/sdkconfig
+++ b/example/peripheral/timer_tacho/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -123,8 +117,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +151,7 @@ CONFIG_ENABLE_TIMER_TACHO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +191,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -323,7 +317,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -334,10 +327,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -357,4 +352,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/timer_tacho/sdkconfig.h b/example/peripheral/timer_tacho/sdkconfig.h
index cb53ea9ebcc71c1c6be9311107728639dc1a82fc..d229320e61b8761cdca2bae864354d9a126e0289 100644
--- a/example/peripheral/timer_tacho/sdkconfig.h
+++ b/example/peripheral/timer_tacho/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -112,8 +108,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -144,6 +138,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -179,7 +174,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -283,7 +279,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -294,9 +289,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -316,6 +313,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/peripheral/usb/cherryusb_host/configs/e2000d_aarch32_demo_cherry_usb.config b/example/peripheral/usb/cherryusb_host/configs/e2000d_aarch32_demo_cherry_usb.config
index 9ad688815dd5011844ffa45e767cc4aaa5d1a81f..d6b28c3328dfad806d3f25503cfd098a55a3fdf1 100644
--- a/example/peripheral/usb/cherryusb_host/configs/e2000d_aarch32_demo_cherry_usb.config
+++ b/example/peripheral/usb/cherryusb_host/configs/e2000d_aarch32_demo_cherry_usb.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -125,8 +127,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +155,7 @@ CONFIG_ENABLE_USB_FXHCI=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +195,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -323,7 +325,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -349,10 +350,13 @@ CONFIG_CHERRY_USB_HOST_HID=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -372,4 +376,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/usb/cherryusb_host/configs/e2000d_aarch64_demo_cherry_usb.config b/example/peripheral/usb/cherryusb_host/configs/e2000d_aarch64_demo_cherry_usb.config
index 593583b92c1b670e493b1ff98950cf952c92564a..6e51488da7b1c9d53cc6d25459f4271adf8defbc 100644
--- a/example/peripheral/usb/cherryusb_host/configs/e2000d_aarch64_demo_cherry_usb.config
+++ b/example/peripheral/usb/cherryusb_host/configs/e2000d_aarch64_demo_cherry_usb.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -127,8 +121,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -157,6 +149,7 @@ CONFIG_ENABLE_USB_FXHCI=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -196,7 +189,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,7 +315,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -347,10 +340,13 @@ CONFIG_CHERRY_USB_HOST_HID=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -370,4 +366,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/usb/cherryusb_host/configs/e2000q_aarch32_demo_cherry_usb.config b/example/peripheral/usb/cherryusb_host/configs/e2000q_aarch32_demo_cherry_usb.config
index 510f7485b0f65aada88fbd6e845bf77b7817f4a9..b40d316d328db55c675214711f1b600f64d60742 100644
--- a/example/peripheral/usb/cherryusb_host/configs/e2000q_aarch32_demo_cherry_usb.config
+++ b/example/peripheral/usb/cherryusb_host/configs/e2000q_aarch32_demo_cherry_usb.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +154,7 @@ CONFIG_ENABLE_USB_FXHCI=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +194,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -322,7 +324,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -348,10 +349,13 @@ CONFIG_CHERRY_USB_HOST_HID=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -371,4 +375,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/usb/cherryusb_host/configs/e2000q_aarch64_demo_cherry_usb.config b/example/peripheral/usb/cherryusb_host/configs/e2000q_aarch64_demo_cherry_usb.config
index 47fb9c1b3cdf485fdd3231a5c6ba3b8c2cd6bf52..b2e3c174d8ea0a15fef61e3bc05c4c4e98814e3b 100644
--- a/example/peripheral/usb/cherryusb_host/configs/e2000q_aarch64_demo_cherry_usb.config
+++ b/example/peripheral/usb/cherryusb_host/configs/e2000q_aarch64_demo_cherry_usb.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -156,6 +148,7 @@ CONFIG_ENABLE_USB_FXHCI=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -195,7 +188,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +314,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -346,10 +339,13 @@ CONFIG_CHERRY_USB_HOST_HID=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -369,4 +365,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/usb/cherryusb_host/configs/phytiumpi_aarch32_firefly_cherry_usb.config b/example/peripheral/usb/cherryusb_host/configs/phytiumpi_aarch32_firefly_cherry_usb.config
index 26794360988eda0eb552431b2c4be19652163767..c6a8bad769314f809ec4ff8549c0e580da6661b5 100644
--- a/example/peripheral/usb/cherryusb_host/configs/phytiumpi_aarch32_firefly_cherry_usb.config
+++ b/example/peripheral/usb/cherryusb_host/configs/phytiumpi_aarch32_firefly_cherry_usb.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +125,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +153,7 @@ CONFIG_ENABLE_USB_FXHCI=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,7 +323,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -347,10 +348,13 @@ CONFIG_CHERRY_USB_HOST_HID=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -370,4 +374,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/usb/cherryusb_host/configs/phytiumpi_aarch64_firefly_cherry_usb.config b/example/peripheral/usb/cherryusb_host/configs/phytiumpi_aarch64_firefly_cherry_usb.config
index 9690ac41bcc5b475b8d9b1c3ca39c06384bbb8f4..4a6cc0b13fdb69b502953cc3fda531827711d4f9 100644
--- a/example/peripheral/usb/cherryusb_host/configs/phytiumpi_aarch64_firefly_cherry_usb.config
+++ b/example/peripheral/usb/cherryusb_host/configs/phytiumpi_aarch64_firefly_cherry_usb.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +147,7 @@ CONFIG_ENABLE_USB_FXHCI=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -345,10 +338,13 @@ CONFIG_CHERRY_USB_HOST_HID=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -368,4 +364,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/usb/cherryusb_host/sdkconfig b/example/peripheral/usb/cherryusb_host/sdkconfig
index 9690ac41bcc5b475b8d9b1c3ca39c06384bbb8f4..4a6cc0b13fdb69b502953cc3fda531827711d4f9 100644
--- a/example/peripheral/usb/cherryusb_host/sdkconfig
+++ b/example/peripheral/usb/cherryusb_host/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +147,7 @@ CONFIG_ENABLE_USB_FXHCI=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -345,10 +338,13 @@ CONFIG_CHERRY_USB_HOST_HID=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -368,4 +364,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/usb/cherryusb_host/sdkconfig.h b/example/peripheral/usb/cherryusb_host/sdkconfig.h
index 6bd681ba1d2b35b06d722a4faa04af97e0dbb4fe..015e2932574fed90fa8909ca006504deff7e51e9 100644
--- a/example/peripheral/usb/cherryusb_host/sdkconfig.h
+++ b/example/peripheral/usb/cherryusb_host/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -114,8 +110,6 @@
#define CONFIG_USE_SPI
#define CONFIG_USE_FSPIM
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -142,6 +136,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -177,7 +172,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -281,7 +277,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -306,9 +301,11 @@
/* CONFIG_CHERRY_USB_HOST_CDC is not set */
/* CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set */
/* end of CherryUSB Configuration */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -328,6 +325,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/peripheral/wdt/configs/d2000_aarch32_test_wdt.config b/example/peripheral/wdt/configs/d2000_aarch32_test_wdt.config
index 965b6479974edee258868aedd73380075322baee..35637bf1b541be275c0cc309122c38852200bbe5 100644
--- a/example/peripheral/wdt/configs/d2000_aarch32_test_wdt.config
+++ b/example/peripheral/wdt/configs/d2000_aarch32_test_wdt.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -147,6 +147,7 @@ CONFIG_USE_FWDT=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -186,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -315,7 +317,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -326,10 +327,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -349,4 +352,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/wdt/configs/d2000_aarch64_test_wdt.config b/example/peripheral/wdt/configs/d2000_aarch64_test_wdt.config
index 9bd1d6e98066d49d9fc25039909a8e2a038e27ff..39f6187da3e3f13e80879033361c93b8e13e7cf2 100644
--- a/example/peripheral/wdt/configs/d2000_aarch64_test_wdt.config
+++ b/example/peripheral/wdt/configs/d2000_aarch64_test_wdt.config
@@ -113,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -149,6 +147,7 @@ CONFIG_USE_FWDT=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -188,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -313,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -324,10 +323,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -347,4 +348,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/wdt/configs/e2000d_aarch32_demo_wdt.config b/example/peripheral/wdt/configs/e2000d_aarch32_demo_wdt.config
index a22cbcf58d8e917bfef220df6cdbd2aa00bb7dad..45ebf6c1431cc3a15db31cfdc4e1089184ebbacf 100644
--- a/example/peripheral/wdt/configs/e2000d_aarch32_demo_wdt.config
+++ b/example/peripheral/wdt/configs/e2000d_aarch32_demo_wdt.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +158,7 @@ CONFIG_USE_FWDT=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +198,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -328,7 +328,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -339,10 +338,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -362,4 +363,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/wdt/configs/e2000d_aarch64_demo_wdt.config b/example/peripheral/wdt/configs/e2000d_aarch64_demo_wdt.config
index 328aab0617aed44e15ffe113560e3341a76aab0a..f922d896e947cae56108f753e9ebf7c75ed815c9 100644
--- a/example/peripheral/wdt/configs/e2000d_aarch64_demo_wdt.config
+++ b/example/peripheral/wdt/configs/e2000d_aarch64_demo_wdt.config
@@ -126,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +160,7 @@ CONFIG_USE_FWDT=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +200,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +326,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +336,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +361,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/wdt/configs/e2000q_aarch32_demo_wdt.config b/example/peripheral/wdt/configs/e2000q_aarch32_demo_wdt.config
index 1a26f28920920f4debcab542b99ebdc08373d11e..b65ac0e8abf861770443de5100d8cc3e447222d6 100644
--- a/example/peripheral/wdt/configs/e2000q_aarch32_demo_wdt.config
+++ b/example/peripheral/wdt/configs/e2000q_aarch32_demo_wdt.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +123,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +157,7 @@ CONFIG_USE_FWDT=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +197,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +327,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +337,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +362,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/wdt/configs/e2000q_aarch64_demo_wdt.config b/example/peripheral/wdt/configs/e2000q_aarch64_demo_wdt.config
index 90a9f4b258ab2e68978abba4be1ea2832abb9173..0122c557582d189a1b4e779773b52c9fd1eef4b8 100644
--- a/example/peripheral/wdt/configs/e2000q_aarch64_demo_wdt.config
+++ b/example/peripheral/wdt/configs/e2000q_aarch64_demo_wdt.config
@@ -125,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +159,7 @@ CONFIG_USE_FWDT=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +199,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -325,7 +325,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -336,10 +335,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -359,4 +360,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/wdt/configs/ft2004_aarch32_dsk_wdt.config b/example/peripheral/wdt/configs/ft2004_aarch32_dsk_wdt.config
index c0be8c2e01ea682c21457df10ff9c5ccb46b4922..630966840d83ee10d42947c6975bac9048ad0651 100644
--- a/example/peripheral/wdt/configs/ft2004_aarch32_dsk_wdt.config
+++ b/example/peripheral/wdt/configs/ft2004_aarch32_dsk_wdt.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,8 +111,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -147,6 +145,7 @@ CONFIG_USE_FWDT=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -186,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -315,7 +315,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -326,10 +325,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -349,4 +350,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/wdt/configs/ft2004_aarch64_dsk_wdt.config b/example/peripheral/wdt/configs/ft2004_aarch64_dsk_wdt.config
index cf27447e6df6bbae063a85b14f4bfb076fa065df..70e96196feaf232f3f3dae8d23812b4b59410fac 100644
--- a/example/peripheral/wdt/configs/ft2004_aarch64_dsk_wdt.config
+++ b/example/peripheral/wdt/configs/ft2004_aarch64_dsk_wdt.config
@@ -113,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -149,6 +147,7 @@ CONFIG_USE_FWDT=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -188,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -313,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -324,10 +323,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -347,4 +348,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/wdt/configs/phytiumpi_aarch32_firefly_wdt.config b/example/peripheral/wdt/configs/phytiumpi_aarch32_firefly_wdt.config
index d85ac63a962bba6277d9179df271ae2664b3b173..87a06fb9d77fb7aab13bfd1e2a5a83edb182a5d6 100644
--- a/example/peripheral/wdt/configs/phytiumpi_aarch32_firefly_wdt.config
+++ b/example/peripheral/wdt/configs/phytiumpi_aarch32_firefly_wdt.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -122,8 +122,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -158,6 +156,7 @@ CONFIG_USE_FWDT=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -197,7 +196,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +326,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +336,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +361,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/wdt/configs/phytiumpi_aarch64_firefly_wdt.config b/example/peripheral/wdt/configs/phytiumpi_aarch64_firefly_wdt.config
index c8e8e214bfb82154c5842015b647220e3b13cd4f..e119961660411fdd802b4da7a2ec7a46997cdbc1 100644
--- a/example/peripheral/wdt/configs/phytiumpi_aarch64_firefly_wdt.config
+++ b/example/peripheral/wdt/configs/phytiumpi_aarch64_firefly_wdt.config
@@ -124,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +158,7 @@ CONFIG_USE_FWDT=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +198,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -324,7 +324,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -335,10 +334,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -358,4 +359,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/wdt/sdkconfig b/example/peripheral/wdt/sdkconfig
index c8e8e214bfb82154c5842015b647220e3b13cd4f..35637bf1b541be275c0cc309122c38852200bbe5 100644
--- a/example/peripheral/wdt/sdkconfig
+++ b/example/peripheral/wdt/sdkconfig
@@ -9,8 +9,8 @@ CONFIG_ARCH_NAME="armv8"
#
# Arm architecture configuration
#
-CONFIG_ARCH_ARMV8_AARCH64=y
-# CONFIG_ARCH_ARMV8_AARCH32 is not set
+# CONFIG_ARCH_ARMV8_AARCH64 is not set
+CONFIG_ARCH_ARMV8_AARCH32=y
#
# Compiler configuration
@@ -18,46 +18,46 @@ CONFIG_ARCH_ARMV8_AARCH64=y
CONFIG_ARM_GCC_SELECT=y
# CONFIG_ARM_CLANG_SELECT is not set
CONFIG_TOOLCHAIN_NAME="gcc"
-CONFIG_TARGET_ARMV8_AARCH64=y
-CONFIG_ARCH_EXECUTION_STATE="aarch64"
+CONFIG_TARGET_ARMV8_AARCH32=y
+CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-CONFIG_ARM_NEON=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
-
-CONFIG_ARM_CRC=y
-CONFIG_ARM_CRYPTO=y
-CONFIG_ARM_FLOAT_POINT=y
-# CONFIG_GCC_CODE_MODEL_TINY is not set
-CONFIG_GCC_CODE_MODEL_SMALL=y
-# CONFIG_GCC_CODE_MODEL_LARGE is not set
# end of Compiler configuration
CONFIG_USE_CACHE=y
+# CONFIG_USE_L3CACHE is not set
CONFIG_USE_MMU=y
-# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
-# CONFIG_MMU_DEBUG_PRINTS is not set
+CONFIG_USE_AARCH64_L1_TO_AARCH32=y
# end of Arm architecture configuration
# end of Arch configuration
#
# Soc configuration
#
-CONFIG_TARGET_PHYTIUMPI=y
+# CONFIG_TARGET_PHYTIUMPI is not set
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
# CONFIG_TARGET_FT2004 is not set
-# CONFIG_TARGET_D2000 is not set
-CONFIG_SOC_NAME="phytiumpi"
-CONFIG_SOC_CORE_NUM=4
+CONFIG_TARGET_D2000=y
+CONFIG_SOC_NAME="d2000"
+CONFIG_SOC_CORE_NUM=8
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
-CONFIG_TARGET_E2000=y
# CONFIG_USE_SPINLOCK is not set
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
@@ -67,23 +67,12 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="firefly"
-# CONFIG_USE_SPI_IOPAD is not set
-# CONFIG_USE_GPIO_IOPAD is not set
-# CONFIG_USE_CAN_IOPAD is not set
-# CONFIG_USE_QSPI_IOPAD is not set
-# CONFIG_USE_PWM_IOPAD is not set
-# CONFIG_USE_MIO_IOPAD is not set
-# CONFIG_USE_TACHO_IOPAD is not set
-# CONFIG_USE_UART_IOPAD is not set
-# CONFIG_USE_THIRD_PARTY_IOPAD is not set
-CONFIG_FIREFLY_DEMO_BOARD=y
+CONFIG_BOARD_NAME="test"
+CONFIG_D2000_TEST_BOARD=y
#
# IO mux configuration when board start up
#
-# end of IO mux configuration when board start up
-
# CONFIG_CUS_DEMO_BOARD is not set
#
@@ -120,12 +109,10 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
# Drivers configuration
#
CONFIG_USE_IOMUX=y
-# CONFIG_ENABLE_IOCTRL is not set
-CONFIG_ENABLE_IOPAD=y
+CONFIG_ENABLE_IOCTRL=y
+# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +147,7 @@ CONFIG_USE_FWDT=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -212,8 +201,12 @@ CONFIG_DEFAULT_LINKER_SCRIPT=y
CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
CONFIG_IMAGE_MAX_LENGTH=0x1000000
CONFIG_HEAP_SIZE=1
-CONFIG_STACK_SIZE=0x400
-CONFIG_FPU_STACK_SIZE=0x1000
+CONFIG_SVC_STACK_SIZE=0x1000
+CONFIG_SYS_STACK_SIZE=0x1000
+CONFIG_IRQ_STACK_SIZE=0x1000
+CONFIG_ABORT_STACK_SIZE=0x1000
+CONFIG_FIQ_STACK_SIZE=0x1000
+CONFIG_UNDEF_STACK_SIZE=0x1000
# end of Linker Options
# end of Build setup
@@ -324,7 +317,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -335,10 +327,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -358,4 +352,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/wdt/sdkconfig.h b/example/peripheral/wdt/sdkconfig.h
index f5fc6bff384a3ddc290a9a2a6a6d8a13db49b352..0279ed1f6037fa2c383ba721e435dede600e384c 100644
--- a/example/peripheral/wdt/sdkconfig.h
+++ b/example/peripheral/wdt/sdkconfig.h
@@ -10,50 +10,51 @@
/* Arm architecture configuration */
-#define CONFIG_ARCH_ARMV8_AARCH64
-/* CONFIG_ARCH_ARMV8_AARCH32 is not set */
+/* CONFIG_ARCH_ARMV8_AARCH64 is not set */
+#define CONFIG_ARCH_ARMV8_AARCH32
/* Compiler configuration */
#define CONFIG_ARM_GCC_SELECT
/* CONFIG_ARM_CLANG_SELECT is not set */
#define CONFIG_TOOLCHAIN_NAME "gcc"
-#define CONFIG_TARGET_ARMV8_AARCH64
-#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
+#define CONFIG_TARGET_ARMV8_AARCH32
+#define CONFIG_ARCH_EXECUTION_STATE "aarch32"
/* Fpu configuration */
-#define CONFIG_ARM_NEON
+#define CONFIG_CRYPTO_NEON_FP_ARMV8
+/* CONFIG_VFPV4 is not set */
+/* CONFIG_VFPV4_D16 is not set */
+/* CONFIG_VFPV3 is not set */
+/* CONFIG_VFPV3_D16 is not set */
+#define CONFIG_ARM_MFPU "crypto-neon-fp-armv8"
+#define CONFIG_MFLOAT_ABI_HARD
+/* CONFIG_MFLOAT_ABI_SOFTFP is not set */
+#define CONFIG_ARM_MFLOAT_ABI "hard"
/* end of Fpu configuration */
-#define CONFIG_ARM_CRC
-#define CONFIG_ARM_CRYPTO
-#define CONFIG_ARM_FLOAT_POINT
-/* CONFIG_GCC_CODE_MODEL_TINY is not set */
-#define CONFIG_GCC_CODE_MODEL_SMALL
-/* CONFIG_GCC_CODE_MODEL_LARGE is not set */
/* end of Compiler configuration */
#define CONFIG_USE_CACHE
+/* CONFIG_USE_L3CACHE is not set */
#define CONFIG_USE_MMU
-/* CONFIG_BOOT_WITH_FLUSH_CACHE is not set */
-/* CONFIG_MMU_DEBUG_PRINTS is not set */
+#define CONFIG_USE_AARCH64_L1_TO_AARCH32
/* end of Arm architecture configuration */
/* end of Arch configuration */
/* Soc configuration */
-#define CONFIG_TARGET_PHYTIUMPI
+/* CONFIG_TARGET_PHYTIUMPI is not set */
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
/* CONFIG_TARGET_FT2004 is not set */
-/* CONFIG_TARGET_D2000 is not set */
-#define CONFIG_SOC_NAME "phytiumpi"
-#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_TARGET_D2000
+#define CONFIG_SOC_NAME "d2000"
+#define CONFIG_SOC_CORE_NUM 8
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
-#define CONFIG_TARGET_E2000
/* CONFIG_USE_SPINLOCK is not set */
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
@@ -62,21 +63,11 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "firefly"
-/* CONFIG_USE_SPI_IOPAD is not set */
-/* CONFIG_USE_GPIO_IOPAD is not set */
-/* CONFIG_USE_CAN_IOPAD is not set */
-/* CONFIG_USE_QSPI_IOPAD is not set */
-/* CONFIG_USE_PWM_IOPAD is not set */
-/* CONFIG_USE_MIO_IOPAD is not set */
-/* CONFIG_USE_TACHO_IOPAD is not set */
-/* CONFIG_USE_UART_IOPAD is not set */
-/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
-#define CONFIG_FIREFLY_DEMO_BOARD
+#define CONFIG_BOARD_NAME "test"
+#define CONFIG_D2000_TEST_BOARD
/* IO mux configuration when board start up */
-/* end of IO mux configuration when board start up */
/* CONFIG_CUS_DEMO_BOARD is not set */
/* Build project name */
@@ -109,12 +100,10 @@
/* Drivers configuration */
#define CONFIG_USE_IOMUX
-/* CONFIG_ENABLE_IOCTRL is not set */
-#define CONFIG_ENABLE_IOPAD
+#define CONFIG_ENABLE_IOCTRL
+/* CONFIG_ENABLE_IOPAD is not set */
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -145,6 +134,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -180,7 +170,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -191,8 +182,12 @@
#define CONFIG_IMAGE_LOAD_ADDRESS 0x80100000
#define CONFIG_IMAGE_MAX_LENGTH 0x1000000
#define CONFIG_HEAP_SIZE 1
-#define CONFIG_STACK_SIZE 0x400
-#define CONFIG_FPU_STACK_SIZE 0x1000
+#define CONFIG_SVC_STACK_SIZE 0x1000
+#define CONFIG_SYS_STACK_SIZE 0x1000
+#define CONFIG_IRQ_STACK_SIZE 0x1000
+#define CONFIG_ABORT_STACK_SIZE 0x1000
+#define CONFIG_FIQ_STACK_SIZE 0x1000
+#define CONFIG_UNDEF_STACK_SIZE 0x1000
/* end of Linker Options */
/* end of Build setup */
@@ -284,7 +279,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -295,9 +289,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -317,6 +313,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/storage/fatfs/README.md b/example/storage/fatfs/README.md
index ecaaaa7a6adcad8ae7302782106cb6c84646bf6c..03d347d5eb480c8f1e057207e92d9552c16ae4a0 100644
--- a/example/storage/fatfs/README.md
+++ b/example/storage/fatfs/README.md
@@ -74,8 +74,8 @@ bootelf -p 0x90100000
### 2.4 输出与实验现象
-- 打开配置 CONFIG_FATFS_SDIO_TF, 使能 MicroSD(TF) 卡
-- 打开配置 CONFIG_FATFS_SDIO_EMMC, 使能 eMMC
+- 打开配置 CONFIG_FATFS_SDIF_TF, 使能 MicroSD(TF) 卡
+- 打开配置 CONFIG_FATFS_SDIF_EMMC, 使能 eMMC
- 打开配置 CONFIG_FATFS_USB, 使能 U 盘
- 打开配置 CONFIG_FATFS_FSATA, 使能 SATA 硬盘
- 打开配置 CONFIG_FATFS_FSATA_PCIE, 使能 SATA 硬盘与 PCIE 接口
diff --git a/example/storage/fatfs/configs/e2000d_aarch32_demo_fatfs.config b/example/storage/fatfs/configs/e2000d_aarch32_demo_fatfs.config
index 99fa5474feeeda93933107ebe97e18a53a18636a..5817e573d244db501371293517accf7e5cd663e4 100644
--- a/example/storage/fatfs/configs/e2000d_aarch32_demo_fatfs.config
+++ b/example/storage/fatfs/configs/e2000d_aarch32_demo_fatfs.config
@@ -33,13 +33,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -133,8 +135,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -151,7 +151,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_MIO is not set
CONFIG_USE_SDMMC=y
# CONFIG_ENABLE_FSDMMC is not set
-CONFIG_ENABLE_FSDIO=y
+CONFIG_ENABLE_FSDIF=y
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
@@ -164,6 +164,7 @@ CONFIG_ENABLE_FSDIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -203,7 +204,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -332,15 +334,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-CONFIG_USE_SDMMC_CMD=y
-
-#
-# Sdmmc configuration
-#
-# CONFIG_SDMMC_USE_FSDMMC is not set
-CONFIG_SDMMC_USE_FSDIO=y
-# end of Sdmmc configuration
-
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -360,8 +353,9 @@ CONFIG_FATFS_RAM_DISK_SECTOR_SIZE_BYTE=512
# end of RAM Disk Configuration
CONFIG_FATFS_SDMMC=y
-CONFIG_FATFS_SDMMC_FSDIO_TF=y
-CONFIG_FATFS_SDMMC_FSDIO_EMMC=y
+CONFIG_FATFS_SDMMC_FSDIF_TF=y
+CONFIG_FATFS_SDMMC_FSDIF_EMMC=y
+CONFIG_FATFS_SDMMC_PARTITION=0
# CONFIG_FATFS_SDMMC_FSDMMC_TF is not set
CONFIG_FATFS_SATA_DISK=y
@@ -406,10 +400,35 @@ CONFIG_CHERRY_USB_HOST_MSC=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+# CONFIG_FSL_SDMMC_ENABLE_SDIO is not set
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -429,4 +448,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/fatfs/configs/e2000d_aarch64_demo_fatfs.config b/example/storage/fatfs/configs/e2000d_aarch64_demo_fatfs.config
index 657f651bac3e50ab6645cd2892a67b56511149aa..0edcb50549651844e5477247caeea2305ad06f99 100644
--- a/example/storage/fatfs/configs/e2000d_aarch64_demo_fatfs.config
+++ b/example/storage/fatfs/configs/e2000d_aarch64_demo_fatfs.config
@@ -29,13 +29,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -135,8 +129,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,7 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_MIO is not set
CONFIG_USE_SDMMC=y
# CONFIG_ENABLE_FSDMMC is not set
-CONFIG_ENABLE_FSDIO=y
+CONFIG_ENABLE_FSDIF=y
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
@@ -166,6 +158,7 @@ CONFIG_ENABLE_FSDIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -205,7 +198,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -218,7 +212,7 @@ CONFIG_DEFAULT_LINKER_SCRIPT=y
CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
CONFIG_IMAGE_MAX_LENGTH=0x2000000
CONFIG_HEAP_SIZE=2
-CONFIG_STACK_SIZE=0x100000
+CONFIG_STACK_SIZE=0x400
CONFIG_FPU_STACK_SIZE=0x1000
# end of Linker Options
# end of Build setup
@@ -330,15 +324,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-CONFIG_USE_SDMMC_CMD=y
-
-#
-# Sdmmc configuration
-#
-# CONFIG_SDMMC_USE_FSDMMC is not set
-CONFIG_SDMMC_USE_FSDIO=y
-# end of Sdmmc configuration
-
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -358,8 +343,9 @@ CONFIG_FATFS_RAM_DISK_SECTOR_SIZE_BYTE=512
# end of RAM Disk Configuration
CONFIG_FATFS_SDMMC=y
-CONFIG_FATFS_SDMMC_FSDIO_TF=y
-CONFIG_FATFS_SDMMC_FSDIO_EMMC=y
+CONFIG_FATFS_SDMMC_FSDIF_TF=y
+CONFIG_FATFS_SDMMC_FSDIF_EMMC=y
+CONFIG_FATFS_SDMMC_PARTITION=0
# CONFIG_FATFS_SDMMC_FSDMMC_TF is not set
CONFIG_FATFS_SATA_DISK=y
@@ -404,10 +390,35 @@ CONFIG_CHERRY_USB_HOST_MSC=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+# CONFIG_FSL_SDMMC_ENABLE_SDIO is not set
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -427,4 +438,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/fatfs/configs/e2000q_aarch32_demo_fatfs.config b/example/storage/fatfs/configs/e2000q_aarch32_demo_fatfs.config
index 4de0f25449af9380ae9dd9be91e9ed726e0f95ba..de7442ada1a061eca41534dd0aa6895790a11d15 100644
--- a/example/storage/fatfs/configs/e2000q_aarch32_demo_fatfs.config
+++ b/example/storage/fatfs/configs/e2000q_aarch32_demo_fatfs.config
@@ -33,13 +33,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -132,8 +134,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -150,7 +150,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_MIO is not set
CONFIG_USE_SDMMC=y
# CONFIG_ENABLE_FSDMMC is not set
-CONFIG_ENABLE_FSDIO=y
+CONFIG_ENABLE_FSDIF=y
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
@@ -163,6 +163,7 @@ CONFIG_ENABLE_FSDIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -202,7 +203,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -331,15 +333,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-CONFIG_USE_SDMMC_CMD=y
-
-#
-# Sdmmc configuration
-#
-# CONFIG_SDMMC_USE_FSDMMC is not set
-CONFIG_SDMMC_USE_FSDIO=y
-# end of Sdmmc configuration
-
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -359,8 +352,9 @@ CONFIG_FATFS_RAM_DISK_SECTOR_SIZE_BYTE=512
# end of RAM Disk Configuration
CONFIG_FATFS_SDMMC=y
-CONFIG_FATFS_SDMMC_FSDIO_TF=y
-CONFIG_FATFS_SDMMC_FSDIO_EMMC=y
+CONFIG_FATFS_SDMMC_FSDIF_TF=y
+CONFIG_FATFS_SDMMC_FSDIF_EMMC=y
+CONFIG_FATFS_SDMMC_PARTITION=0
# CONFIG_FATFS_SDMMC_FSDMMC_TF is not set
CONFIG_FATFS_SATA_DISK=y
@@ -405,10 +399,35 @@ CONFIG_CHERRY_USB_HOST_MSC=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+# CONFIG_FSL_SDMMC_ENABLE_SDIO is not set
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -428,4 +447,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/fatfs/configs/e2000q_aarch64_demo_fatfs.config b/example/storage/fatfs/configs/e2000q_aarch64_demo_fatfs.config
index 67b629de634544ef6f002d6be252c4de64990cb2..3ddb936ff4288d2822fed652dcc5c3385e97d327 100644
--- a/example/storage/fatfs/configs/e2000q_aarch64_demo_fatfs.config
+++ b/example/storage/fatfs/configs/e2000q_aarch64_demo_fatfs.config
@@ -29,13 +29,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -134,8 +128,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -152,7 +144,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_MIO is not set
CONFIG_USE_SDMMC=y
# CONFIG_ENABLE_FSDMMC is not set
-CONFIG_ENABLE_FSDIO=y
+CONFIG_ENABLE_FSDIF=y
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
@@ -165,6 +157,7 @@ CONFIG_ENABLE_FSDIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -204,7 +197,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -329,15 +323,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-CONFIG_USE_SDMMC_CMD=y
-
-#
-# Sdmmc configuration
-#
-# CONFIG_SDMMC_USE_FSDMMC is not set
-CONFIG_SDMMC_USE_FSDIO=y
-# end of Sdmmc configuration
-
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -357,8 +342,9 @@ CONFIG_FATFS_RAM_DISK_SECTOR_SIZE_BYTE=512
# end of RAM Disk Configuration
CONFIG_FATFS_SDMMC=y
-CONFIG_FATFS_SDMMC_FSDIO_TF=y
-CONFIG_FATFS_SDMMC_FSDIO_EMMC=y
+CONFIG_FATFS_SDMMC_FSDIF_TF=y
+CONFIG_FATFS_SDMMC_FSDIF_EMMC=y
+CONFIG_FATFS_SDMMC_PARTITION=0
# CONFIG_FATFS_SDMMC_FSDMMC_TF is not set
CONFIG_FATFS_SATA_DISK=y
@@ -403,10 +389,35 @@ CONFIG_CHERRY_USB_HOST_MSC=y
# CONFIG_CHERRY_USB_HOST_CDC is not set
# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
# end of CherryUSB Configuration
+
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+# CONFIG_FSL_SDMMC_ENABLE_SDIO is not set
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -426,4 +437,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/fatfs/configs/phytiumpi_aarch32_firefly_fatfs.config b/example/storage/fatfs/configs/phytiumpi_aarch32_firefly_fatfs.config
index e43676f5622dc08434ae762434b9dcbb97247d33..13d7de9a232b6d694003fd442596212d0a37ed67 100644
--- a/example/storage/fatfs/configs/phytiumpi_aarch32_firefly_fatfs.config
+++ b/example/storage/fatfs/configs/phytiumpi_aarch32_firefly_fatfs.config
@@ -3,8 +3,8 @@
# Project Configuration
#
CONFIG_FATFS_BASIC_TEST=y
-CONFIG_FATFS_SPEED_TEST=y
-CONFIG_FATFS_CYCLE_TEST=y
+# CONFIG_FATFS_SPEED_TEST is not set
+# CONFIG_FATFS_CYCLE_TEST is not set
# end of Project Configuration
CONFIG_USE_FREERTOS=y
@@ -33,13 +33,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -131,8 +133,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -149,7 +149,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_MIO is not set
CONFIG_USE_SDMMC=y
# CONFIG_ENABLE_FSDMMC is not set
-CONFIG_ENABLE_FSDIO=y
+CONFIG_ENABLE_FSDIF=y
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
@@ -162,6 +162,7 @@ CONFIG_ENABLE_FSDIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +202,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -330,15 +332,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-CONFIG_USE_SDMMC_CMD=y
-
-#
-# Sdmmc configuration
-#
-# CONFIG_SDMMC_USE_FSDMMC is not set
-CONFIG_SDMMC_USE_FSDIO=y
-# end of Sdmmc configuration
-
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -357,11 +350,21 @@ CONFIG_FATFS_RAM_DISK_SIZE_MB=500
CONFIG_FATFS_RAM_DISK_SECTOR_SIZE_BYTE=512
# end of RAM Disk Configuration
-# CONFIG_FATFS_SDMMC_FSDIO_TF is not set
-# CONFIG_FATFS_SDMMC_FSDIO_EMMC is not set
+CONFIG_FATFS_SDMMC=y
+CONFIG_FATFS_SDMMC_FSDIF_TF=y
+CONFIG_FATFS_SDMMC_FSDIF_EMMC=y
+CONFIG_FATFS_SDMMC_PARTITION=1
# CONFIG_FATFS_SDMMC_FSDMMC_TF is not set
-# CONFIG_FATFS_SATA_DISK is not set
-# CONFIG_FATFS_USB is not set
+CONFIG_FATFS_SATA_DISK=y
+
+#
+# SATA Disk Configuration
+#
+# CONFIG_FATFS_FSATA is not set
+# CONFIG_FATFS_FSATA_PCIE is not set
+# end of SATA Disk Configuration
+
+CONFIG_FATFS_USB=y
CONFIG_FATFS_VOLUME_COUNT=10
# CONFIG_FATFS_LFN_NONE is not set
CONFIG_FATFS_LFN_HEAP=y
@@ -379,11 +382,51 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LITTLE_FS is not set
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
-# CONFIG_USE_CHERRY_USB is not set
+CONFIG_USE_CHERRY_USB=y
+
+#
+# CherryUSB Configuration
+#
+CONFIG_CHERRY_USB_PORT_XHCI=y
+# CONFIG_CHERRY_USB_PORT_PHYTIUM_OTG is not set
+CONFIG_CHERRYUSB_HOST=y
+# CONFIG_CHERRYUSB_DEVICE is not set
+CONFIG_CHERRY_USB_HOST_HUB=y
+CONFIG_CHERRY_USB_HOST_MSC=y
+# CONFIG_CHERRY_USB_HOST_HID is not set
+# CONFIG_CHERRY_USB_HOST_VEDIO is not set
+# CONFIG_CHERRY_USB_HOST_CDC is not set
+# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
+# end of CherryUSB Configuration
+
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+# CONFIG_FSL_SDMMC_ENABLE_SDIO is not set
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -403,4 +446,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/fatfs/configs/phytiumpi_aarch64_firefly_fatfs.config b/example/storage/fatfs/configs/phytiumpi_aarch64_firefly_fatfs.config
index cab86f47128ce2318df484815aae11b90431770e..738b1a21f0faf32a081fe654b5f8d68f534b51db 100644
--- a/example/storage/fatfs/configs/phytiumpi_aarch64_firefly_fatfs.config
+++ b/example/storage/fatfs/configs/phytiumpi_aarch64_firefly_fatfs.config
@@ -3,8 +3,8 @@
# Project Configuration
#
CONFIG_FATFS_BASIC_TEST=y
-CONFIG_FATFS_SPEED_TEST=y
-CONFIG_FATFS_CYCLE_TEST=y
+# CONFIG_FATFS_SPEED_TEST is not set
+# CONFIG_FATFS_CYCLE_TEST is not set
# end of Project Configuration
CONFIG_USE_FREERTOS=y
@@ -29,13 +29,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -133,8 +127,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -151,7 +143,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_MIO is not set
CONFIG_USE_SDMMC=y
# CONFIG_ENABLE_FSDMMC is not set
-CONFIG_ENABLE_FSDIO=y
+CONFIG_ENABLE_FSDIF=y
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
@@ -164,6 +156,7 @@ CONFIG_ENABLE_FSDIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -203,7 +196,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -216,7 +210,7 @@ CONFIG_DEFAULT_LINKER_SCRIPT=y
CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
CONFIG_IMAGE_MAX_LENGTH=0x2000000
CONFIG_HEAP_SIZE=2
-CONFIG_STACK_SIZE=0x100000
+CONFIG_STACK_SIZE=0x400
CONFIG_FPU_STACK_SIZE=0x1000
# end of Linker Options
# end of Build setup
@@ -328,15 +322,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-CONFIG_USE_SDMMC_CMD=y
-
-#
-# Sdmmc configuration
-#
-# CONFIG_SDMMC_USE_FSDMMC is not set
-CONFIG_SDMMC_USE_FSDIO=y
-# end of Sdmmc configuration
-
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -355,11 +340,21 @@ CONFIG_FATFS_RAM_DISK_SIZE_MB=500
CONFIG_FATFS_RAM_DISK_SECTOR_SIZE_BYTE=512
# end of RAM Disk Configuration
-# CONFIG_FATFS_SDMMC_FSDIO_TF is not set
-# CONFIG_FATFS_SDMMC_FSDIO_EMMC is not set
+CONFIG_FATFS_SDMMC=y
+CONFIG_FATFS_SDMMC_FSDIF_TF=y
+CONFIG_FATFS_SDMMC_FSDIF_EMMC=y
+CONFIG_FATFS_SDMMC_PARTITION=1
# CONFIG_FATFS_SDMMC_FSDMMC_TF is not set
-# CONFIG_FATFS_SATA_DISK is not set
-# CONFIG_FATFS_USB is not set
+CONFIG_FATFS_SATA_DISK=y
+
+#
+# SATA Disk Configuration
+#
+# CONFIG_FATFS_FSATA is not set
+# CONFIG_FATFS_FSATA_PCIE is not set
+# end of SATA Disk Configuration
+
+CONFIG_FATFS_USB=y
CONFIG_FATFS_VOLUME_COUNT=10
# CONFIG_FATFS_LFN_NONE is not set
CONFIG_FATFS_LFN_HEAP=y
@@ -377,11 +372,51 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LITTLE_FS is not set
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
-# CONFIG_USE_CHERRY_USB is not set
+CONFIG_USE_CHERRY_USB=y
+
+#
+# CherryUSB Configuration
+#
+CONFIG_CHERRY_USB_PORT_XHCI=y
+# CONFIG_CHERRY_USB_PORT_PHYTIUM_OTG is not set
+CONFIG_CHERRYUSB_HOST=y
+# CONFIG_CHERRYUSB_DEVICE is not set
+CONFIG_CHERRY_USB_HOST_HUB=y
+CONFIG_CHERRY_USB_HOST_MSC=y
+# CONFIG_CHERRY_USB_HOST_HID is not set
+# CONFIG_CHERRY_USB_HOST_VEDIO is not set
+# CONFIG_CHERRY_USB_HOST_CDC is not set
+# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
+# end of CherryUSB Configuration
+
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+# CONFIG_FSL_SDMMC_ENABLE_SDIO is not set
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -401,4 +436,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/fatfs/main.c b/example/storage/fatfs/main.c
index 2b47cb9b0282afe991808a6ccdd527b5f44340bc..aaa3635813052227ea58c8adcd5c093ab32cec30 100644
--- a/example/storage/fatfs/main.c
+++ b/example/storage/fatfs/main.c
@@ -28,17 +28,18 @@
#include "fatfs_examples.h"
#include "sdkconfig.h"
-
-#ifdef CONFIG_FATFS_SDMMC
- #include "sdmmc_system.h"
+#if defined(CONFIG_FATFS_SDMMC_FSDIF_TF) || defined(CONFIG_FATFS_SDMMC_FSDIF_EMMC)
+#include "fsdif_timing.h"
+#include "fsl_sdmmc.h"
#endif
int main(void)
{
BaseType_t ret;
-#ifdef CONFIG_FATFS_SDMMC
- sdmmc_sys_init();
+#if defined(CONFIG_FATFS_SDMMC_FSDIF_TF) || defined(CONFIG_FATFS_SDMMC_FSDIF_EMMC)
+ FSdifTimingInit();
+ SDMMC_OSAInit();
#endif
ret = FFreeRTOSFatfsTest();
@@ -52,6 +53,11 @@ int main(void)
vTaskStartScheduler(); /* 启动任务,开启调度 */
while (1); /* 正常不会执行到这里 */
+#if defined(CONFIG_FATFS_SDMMC_FSDIF_TF) || defined(CONFIG_FATFS_SDMMC_FSDIF_EMMC)
+ SDMMC_OSADeInit();
+ FSdifTimingDeinit();
+#endif
+
FAIL_EXIT:
printf("Failed,the ret value is 0x%x. \r\n", ret);
return 0;
diff --git a/example/storage/fatfs/sdkconfig b/example/storage/fatfs/sdkconfig
index e43676f5622dc08434ae762434b9dcbb97247d33..738b1a21f0faf32a081fe654b5f8d68f534b51db 100644
--- a/example/storage/fatfs/sdkconfig
+++ b/example/storage/fatfs/sdkconfig
@@ -3,8 +3,8 @@
# Project Configuration
#
CONFIG_FATFS_BASIC_TEST=y
-CONFIG_FATFS_SPEED_TEST=y
-CONFIG_FATFS_CYCLE_TEST=y
+# CONFIG_FATFS_SPEED_TEST is not set
+# CONFIG_FATFS_CYCLE_TEST is not set
# end of Project Configuration
CONFIG_USE_FREERTOS=y
@@ -18,8 +18,8 @@ CONFIG_ARCH_NAME="armv8"
#
# Arm architecture configuration
#
-# CONFIG_ARCH_ARMV8_AARCH64 is not set
-CONFIG_ARCH_ARMV8_AARCH32=y
+CONFIG_ARCH_ARMV8_AARCH64=y
+# CONFIG_ARCH_ARMV8_AARCH32 is not set
#
# Compiler configuration
@@ -27,25 +27,21 @@ CONFIG_ARCH_ARMV8_AARCH32=y
CONFIG_ARM_GCC_SELECT=y
# CONFIG_ARM_CLANG_SELECT is not set
CONFIG_TOOLCHAIN_NAME="gcc"
-CONFIG_TARGET_ARMV8_AARCH32=y
-CONFIG_ARCH_EXECUTION_STATE="aarch32"
-
-#
-# Fpu configuration
-#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
+CONFIG_TARGET_ARMV8_AARCH64=y
+CONFIG_ARCH_EXECUTION_STATE="aarch64"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
-# end of Fpu configuration
+CONFIG_ARM_CRC=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_ARM_FLOAT_POINT=y
+# CONFIG_GCC_CODE_MODEL_TINY is not set
+CONFIG_GCC_CODE_MODEL_SMALL=y
+# CONFIG_GCC_CODE_MODEL_LARGE is not set
# end of Compiler configuration
CONFIG_USE_CACHE=y
CONFIG_USE_MMU=y
-CONFIG_USE_AARCH64_L1_TO_AARCH32=y
+# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
+# CONFIG_MMU_DEBUG_PRINTS is not set
# end of Arm architecture configuration
# end of Arch configuration
@@ -131,8 +127,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -149,7 +143,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_MIO is not set
CONFIG_USE_SDMMC=y
# CONFIG_ENABLE_FSDMMC is not set
-CONFIG_ENABLE_FSDIO=y
+CONFIG_ENABLE_FSDIF=y
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
@@ -162,6 +156,7 @@ CONFIG_ENABLE_FSDIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +196,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -214,12 +210,8 @@ CONFIG_DEFAULT_LINKER_SCRIPT=y
CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
CONFIG_IMAGE_MAX_LENGTH=0x2000000
CONFIG_HEAP_SIZE=2
-CONFIG_SVC_STACK_SIZE=0x1000
-CONFIG_SYS_STACK_SIZE=0x1000
-CONFIG_IRQ_STACK_SIZE=0x1000
-CONFIG_ABORT_STACK_SIZE=0x1000
-CONFIG_FIQ_STACK_SIZE=0x1000
-CONFIG_UNDEF_STACK_SIZE=0x1000
+CONFIG_STACK_SIZE=0x400
+CONFIG_FPU_STACK_SIZE=0x1000
# end of Linker Options
# end of Build setup
@@ -330,15 +322,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-CONFIG_USE_SDMMC_CMD=y
-
-#
-# Sdmmc configuration
-#
-# CONFIG_SDMMC_USE_FSDMMC is not set
-CONFIG_SDMMC_USE_FSDIO=y
-# end of Sdmmc configuration
-
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -357,11 +340,21 @@ CONFIG_FATFS_RAM_DISK_SIZE_MB=500
CONFIG_FATFS_RAM_DISK_SECTOR_SIZE_BYTE=512
# end of RAM Disk Configuration
-# CONFIG_FATFS_SDMMC_FSDIO_TF is not set
-# CONFIG_FATFS_SDMMC_FSDIO_EMMC is not set
+CONFIG_FATFS_SDMMC=y
+CONFIG_FATFS_SDMMC_FSDIF_TF=y
+CONFIG_FATFS_SDMMC_FSDIF_EMMC=y
+CONFIG_FATFS_SDMMC_PARTITION=1
# CONFIG_FATFS_SDMMC_FSDMMC_TF is not set
-# CONFIG_FATFS_SATA_DISK is not set
-# CONFIG_FATFS_USB is not set
+CONFIG_FATFS_SATA_DISK=y
+
+#
+# SATA Disk Configuration
+#
+# CONFIG_FATFS_FSATA is not set
+# CONFIG_FATFS_FSATA_PCIE is not set
+# end of SATA Disk Configuration
+
+CONFIG_FATFS_USB=y
CONFIG_FATFS_VOLUME_COUNT=10
# CONFIG_FATFS_LFN_NONE is not set
CONFIG_FATFS_LFN_HEAP=y
@@ -379,11 +372,51 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LITTLE_FS is not set
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
-# CONFIG_USE_CHERRY_USB is not set
+CONFIG_USE_CHERRY_USB=y
+
+#
+# CherryUSB Configuration
+#
+CONFIG_CHERRY_USB_PORT_XHCI=y
+# CONFIG_CHERRY_USB_PORT_PHYTIUM_OTG is not set
+CONFIG_CHERRYUSB_HOST=y
+# CONFIG_CHERRYUSB_DEVICE is not set
+CONFIG_CHERRY_USB_HOST_HUB=y
+CONFIG_CHERRY_USB_HOST_MSC=y
+# CONFIG_CHERRY_USB_HOST_HID is not set
+# CONFIG_CHERRY_USB_HOST_VEDIO is not set
+# CONFIG_CHERRY_USB_HOST_CDC is not set
+# CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set
+# end of CherryUSB Configuration
+
+CONFIG_USE_FSL_SDMMC=y
+
+#
+# FSL Sdmmc configuration
+#
+
+#
+# Host configuration
+#
+CONFIG_FSL_SDMMC_USE_FSDIF=y
+# CONFIG_FSL_SDMMC_USE_FSDMMC is not set
+# end of Host configuration
+
+#
+# Protocol configuration
+#
+CONFIG_FSL_SDMMC_ENABLE_SD=y
+CONFIG_FSL_SDMMC_ENABLE_MMC=y
+# CONFIG_FSL_SDMMC_ENABLE_SDIO is not set
+# CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set
+# end of Protocol configuration
+# end of FSL Sdmmc configuration
+
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -403,4 +436,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/fatfs/sdkconfig.h b/example/storage/fatfs/sdkconfig.h
index b826d5479349b75e29de632fa16c122af5a9df3c..21c7a9c30438ac6e26253537a551a224d3f4a348 100644
--- a/example/storage/fatfs/sdkconfig.h
+++ b/example/storage/fatfs/sdkconfig.h
@@ -4,8 +4,8 @@
/* Project Configuration */
#define CONFIG_FATFS_BASIC_TEST
-#define CONFIG_FATFS_SPEED_TEST
-#define CONFIG_FATFS_CYCLE_TEST
+/* CONFIG_FATFS_SPEED_TEST is not set */
+/* CONFIG_FATFS_CYCLE_TEST is not set */
/* end of Project Configuration */
#define CONFIG_USE_FREERTOS
@@ -16,31 +16,28 @@
/* Arm architecture configuration */
-/* CONFIG_ARCH_ARMV8_AARCH64 is not set */
-#define CONFIG_ARCH_ARMV8_AARCH32
+#define CONFIG_ARCH_ARMV8_AARCH64
+/* CONFIG_ARCH_ARMV8_AARCH32 is not set */
/* Compiler configuration */
#define CONFIG_ARM_GCC_SELECT
/* CONFIG_ARM_CLANG_SELECT is not set */
#define CONFIG_TOOLCHAIN_NAME "gcc"
-#define CONFIG_TARGET_ARMV8_AARCH32
-#define CONFIG_ARCH_EXECUTION_STATE "aarch32"
-
-/* Fpu configuration */
-
-/* CONFIG_ARCH_FPU_VFP_V3 is not set */
-#define CONFIG_ARCH_FPU_VFP_V4
-#define CONFIG_ARM_DPFPU32
-/* CONFIG_ARM_FPU_ABI_SOFT is not set */
-#define CONFIG_ARM_FPU_SYMBOL "crypto-neon-fp-armv8"
+#define CONFIG_TARGET_ARMV8_AARCH64
+#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
#define CONFIG_ARM_NEON
-#define CONFIG_ARCH_FPU
-/* end of Fpu configuration */
+#define CONFIG_ARM_CRC
+#define CONFIG_ARM_CRYPTO
+#define CONFIG_ARM_FLOAT_POINT
+/* CONFIG_GCC_CODE_MODEL_TINY is not set */
+#define CONFIG_GCC_CODE_MODEL_SMALL
+/* CONFIG_GCC_CODE_MODEL_LARGE is not set */
/* end of Compiler configuration */
#define CONFIG_USE_CACHE
#define CONFIG_USE_MMU
-#define CONFIG_USE_AARCH64_L1_TO_AARCH32
+/* CONFIG_BOOT_WITH_FLUSH_CACHE is not set */
+/* CONFIG_MMU_DEBUG_PRINTS is not set */
/* end of Arm architecture configuration */
/* end of Arch configuration */
@@ -118,8 +115,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -134,7 +129,7 @@
/* CONFIG_USE_MIO is not set */
#define CONFIG_USE_SDMMC
/* CONFIG_ENABLE_FSDMMC is not set */
-#define CONFIG_ENABLE_FSDIO
+#define CONFIG_ENABLE_FSDIF
/* CONFIG_USE_PCIE is not set */
/* CONFIG_USE_WDT is not set */
/* CONFIG_USE_DMA is not set */
@@ -147,6 +142,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -182,7 +178,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -193,12 +190,8 @@
#define CONFIG_IMAGE_LOAD_ADDRESS 0x80100000
#define CONFIG_IMAGE_MAX_LENGTH 0x2000000
#define CONFIG_HEAP_SIZE 2
-#define CONFIG_SVC_STACK_SIZE 0x1000
-#define CONFIG_SYS_STACK_SIZE 0x1000
-#define CONFIG_IRQ_STACK_SIZE 0x1000
-#define CONFIG_ABORT_STACK_SIZE 0x1000
-#define CONFIG_FIQ_STACK_SIZE 0x1000
-#define CONFIG_UNDEF_STACK_SIZE 0x1000
+#define CONFIG_STACK_SIZE 0x400
+#define CONFIG_FPU_STACK_SIZE 0x1000
/* end of Linker Options */
/* end of Build setup */
@@ -290,13 +283,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-#define CONFIG_USE_SDMMC_CMD
-
-/* Sdmmc configuration */
-
-/* CONFIG_SDMMC_USE_FSDMMC is not set */
-#define CONFIG_SDMMC_USE_FSDIO
-/* end of Sdmmc configuration */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -312,11 +298,19 @@
#define CONFIG_FATFS_RAM_DISK_SIZE_MB 500
#define CONFIG_FATFS_RAM_DISK_SECTOR_SIZE_BYTE 512
/* end of RAM Disk Configuration */
-/* CONFIG_FATFS_SDMMC_FSDIO_TF is not set */
-/* CONFIG_FATFS_SDMMC_FSDIO_EMMC is not set */
+#define CONFIG_FATFS_SDMMC
+#define CONFIG_FATFS_SDMMC_FSDIF_TF
+#define CONFIG_FATFS_SDMMC_FSDIF_EMMC
+#define CONFIG_FATFS_SDMMC_PARTITION 1
/* CONFIG_FATFS_SDMMC_FSDMMC_TF is not set */
-/* CONFIG_FATFS_SATA_DISK is not set */
-/* CONFIG_FATFS_USB is not set */
+#define CONFIG_FATFS_SATA_DISK
+
+/* SATA Disk Configuration */
+
+/* CONFIG_FATFS_FSATA is not set */
+/* CONFIG_FATFS_FSATA_PCIE is not set */
+/* end of SATA Disk Configuration */
+#define CONFIG_FATFS_USB
#define CONFIG_FATFS_VOLUME_COUNT 10
/* CONFIG_FATFS_LFN_NONE is not set */
#define CONFIG_FATFS_LFN_HEAP
@@ -333,10 +327,43 @@
/* CONFIG_USE_LITTLE_FS is not set */
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
-/* CONFIG_USE_CHERRY_USB is not set */
+#define CONFIG_USE_CHERRY_USB
+
+/* CherryUSB Configuration */
+
+#define CONFIG_CHERRY_USB_PORT_XHCI
+/* CONFIG_CHERRY_USB_PORT_PHYTIUM_OTG is not set */
+#define CONFIG_CHERRYUSB_HOST
+/* CONFIG_CHERRYUSB_DEVICE is not set */
+#define CONFIG_CHERRY_USB_HOST_HUB
+#define CONFIG_CHERRY_USB_HOST_MSC
+/* CONFIG_CHERRY_USB_HOST_HID is not set */
+/* CONFIG_CHERRY_USB_HOST_VEDIO is not set */
+/* CONFIG_CHERRY_USB_HOST_CDC is not set */
+/* CONFIG_CHERRY_USB_HOST_RNDIS_WIRELESS is not set */
+/* end of CherryUSB Configuration */
+#define CONFIG_USE_FSL_SDMMC
+
+/* FSL Sdmmc configuration */
+
+/* Host configuration */
+
+#define CONFIG_FSL_SDMMC_USE_FSDIF
+/* CONFIG_FSL_SDMMC_USE_FSDMMC is not set */
+/* end of Host configuration */
+
+/* Protocol configuration */
+
+#define CONFIG_FSL_SDMMC_ENABLE_SD
+#define CONFIG_FSL_SDMMC_ENABLE_MMC
+/* CONFIG_FSL_SDMMC_ENABLE_SDIO is not set */
+/* CONFIG_FSL_SDMMC_ENABLE_SD_SPI is not set */
+/* end of Protocol configuration */
+/* end of FSL Sdmmc configuration */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -356,6 +383,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/storage/fatfs/src/fatfs_examples.c b/example/storage/fatfs/src/fatfs_examples.c
index 7c2b787ddf73697c140fdb1d5ebd45adf89d6c81..438c581df5fa2002765abed8630e8e067ff78363 100644
--- a/example/storage/fatfs/src/fatfs_examples.c
+++ b/example/storage/fatfs/src/fatfs_examples.c
@@ -49,8 +49,8 @@
static const char *mount_points[FFREERTOS_DISK_TYPE_NUM] =
{
[FFREERTOS_FATFS_RAM_DISK] = FF_RAM_DISK_MOUNT_POINT,
- [FFREERTOS_FATFS_TF_CARD] = FF_FSDIO_TF_DISK_MOUNT_POINT,
- [FFREERTOS_FATFS_EMMC_CARD] = FF_FSDIO_EMMC_DISK_MOUNT_POINT,
+ [FFREERTOS_FATFS_TF_CARD] = FF_FSDIF_TF_DISK_MOUNT_POINT,
+ [FFREERTOS_FATFS_EMMC_CARD] = FF_FSDIF_EMMC_DISK_MOUNT_POINT,
[FFREERTOS_FATFS_USB_DISK] = FF_USB_DISK_MOUNT_POINT,
[FFREERTOS_FATFS_SATA_DISK] = FF_SATA_DISK_MOUNT_POINT,
[FFREERTOS_FATFS_SATA_PCIE_DISK] = FF_SATA_PCIE_DISK_MOUNT_POINT
@@ -108,7 +108,7 @@ static void FatfsInitTask(void *args)
#ifdef CONFIG_FATFS_RAM_DISK
fr = ff_setup(&file_sys[FFREERTOS_FATFS_RAM_DISK],
mount_points[FFREERTOS_FATFS_RAM_DISK],
- &fs_option, pdFALSE);
+ &fs_option, pdTRUE);
if (FR_OK != fr)
{
@@ -117,10 +117,10 @@ static void FatfsInitTask(void *args)
}
#endif
-#ifdef CONFIG_FATFS_SDMMC_FSDIO_TF
+#ifdef CONFIG_FATFS_SDMMC_FSDIF_TF
fr = ff_setup(&file_sys[FFREERTOS_FATFS_TF_CARD],
mount_points[FFREERTOS_FATFS_TF_CARD],
- &fs_option, pdFALSE);
+ &fs_option, pdTRUE);
if (FR_OK != fr)
{
@@ -129,14 +129,14 @@ static void FatfsInitTask(void *args)
}
#endif
-#ifdef CONFIG_FATFS_SDMMC_FSDIO_EMMC
+#ifdef CONFIG_FATFS_SDMMC_FSDIF_EMMC
fr = ff_setup(&file_sys[FFREERTOS_FATFS_EMMC_CARD],
mount_points[FFREERTOS_FATFS_EMMC_CARD],
- &fs_option, pdFALSE);
+ &fs_option, pdTRUE);
if (FR_OK != fr)
{
- FF_ERROR("SDIO card init failed, err = %d.", fr);
+ FF_ERROR("eMMC card init failed, err = %d.", fr);
goto task_exit;
}
#endif
@@ -144,7 +144,7 @@ static void FatfsInitTask(void *args)
#ifdef CONFIG_FATFS_USB
fr = ff_setup(&file_sys[FFREERTOS_FATFS_USB_DISK],
mount_points[FFREERTOS_FATFS_USB_DISK],
- &fs_option, pdFALSE);
+ &fs_option, pdTRUE);
if (FR_OK != fr)
{
@@ -156,7 +156,7 @@ static void FatfsInitTask(void *args)
#ifdef CONFIG_FATFS_FSATA
fr = ff_setup(&file_sys[FFREERTOS_FATFS_SATA_DISK],
mount_points[FFREERTOS_FATFS_SATA_DISK],
- &fs_option, pdFALSE);
+ &fs_option, pdTRUE);
if (FR_OK != fr)
{
@@ -167,7 +167,7 @@ static void FatfsInitTask(void *args)
#ifdef CONFIG_FATFS_FSATA_PCIE
fr = ff_setup(&file_sys[FFREERTOS_FATFS_SATA_PCIE_DISK],
mount_points[FFREERTOS_FATFS_SATA_PCIE_DISK],
- &fs_option, pdFALSE);
+ &fs_option, pdTRUE);
if (FR_OK != fr)
{
@@ -175,6 +175,8 @@ static void FatfsInitTask(void *args)
goto task_exit;
}
#endif
+
+ printf("Storage device init finished !!!\r\n");
FatfsSendEvent(FATFS_EVT_INIT_DONE);
task_exit:
vTaskDelete(NULL); /* delete task itself */
@@ -199,7 +201,7 @@ static void FatfsTestTask(void *args)
}
#endif
-#ifdef CONFIG_FATFS_SDMMC_FSDIO_TF
+#ifdef CONFIG_FATFS_SDMMC_FSDIF_TF
printf("\r\n========Basic test for TF Card=================\r\n");
fr = ff_basic_test(mount_points[FFREERTOS_FATFS_TF_CARD], "logfile.txt");
if (FR_OK != fr)
@@ -209,7 +211,7 @@ static void FatfsTestTask(void *args)
}
#endif
-#ifdef CONFIG_FATFS_SDMMC_FSDIO_EMMC
+#ifdef CONFIG_FATFS_SDMMC_FSDIF_EMMC
printf("\r\n========Basic test for eMMC=================\r\n");
fr = ff_basic_test(mount_points[FFREERTOS_FATFS_EMMC_CARD], "logfile.txt");
if (FR_OK != fr)
@@ -264,7 +266,7 @@ static void FatfsTestTask(void *args)
}
#endif
-#ifdef CONFIG_FATFS_SDMMC_FSDIO_TF
+#ifdef CONFIG_FATFS_SDMMC_FSDIF_TF
printf("\r\n========Speed test for TF Card=================\r\n");
fr = ff_speed_bench(mount_points[FFREERTOS_FATFS_TF_CARD], 300000U);
if (FR_OK != fr)
@@ -274,7 +276,7 @@ static void FatfsTestTask(void *args)
}
#endif
-#ifdef CONFIG_FATFS_SDMMC_FSDIO_EMMC
+#ifdef CONFIG_FATFS_SDMMC_FSDIF_EMMC
printf("\r\n========Speed test for eMMC=================\r\n");
fr = ff_speed_bench(mount_points[FFREERTOS_FATFS_EMMC_CARD], 300000U);
if (FR_OK != fr)
@@ -327,7 +329,7 @@ static void FatfsTestTask(void *args)
}
#endif
-#ifdef CONFIG_FATFS_SDMMC_FSDIO_TF
+#ifdef CONFIG_FATFS_SDMMC_FSDIF_TF
printf("\r\n========Cycle test for TF Disk=================\r\n");
if (ff_cycle_test(mount_points[FFREERTOS_FATFS_TF_CARD], 3))
{
@@ -335,7 +337,7 @@ static void FatfsTestTask(void *args)
}
#endif
-#ifdef CONFIG_FATFS_SDMMC_FSDIO_EMMC
+#ifdef CONFIG_FATFS_SDMMC_FSDIF_EMMC
printf("\r\n========Cycle test for SDIO Disk=================\r\n");
if (ff_cycle_test(mount_points[FFREERTOS_FATFS_EMMC_CARD], 3))
{
diff --git a/example/storage/qspi_spiffs/configs/d2000_aarch32_test_qspi_spiffs.config b/example/storage/qspi_spiffs/configs/d2000_aarch32_test_qspi_spiffs.config
index 3534a178173542faec9f205909b3b9e2964c9394..32c81a2a4f0f020a0be7aeb2d08f064ff38ea2f5 100644
--- a/example/storage/qspi_spiffs/configs/d2000_aarch32_test_qspi_spiffs.config
+++ b/example/storage/qspi_spiffs/configs/d2000_aarch32_test_qspi_spiffs.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -118,8 +120,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -147,6 +147,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -186,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -315,7 +317,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -345,10 +346,12 @@ CONFIG_SPIFFS_ON_FQSPI_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -368,4 +371,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/qspi_spiffs/configs/d2000_aarch64_test_qspi_spiffs.config b/example/storage/qspi_spiffs/configs/d2000_aarch64_test_qspi_spiffs.config
index 2c1e1aef2abc4a834243c8cae4057d81fe950f8c..4e51211938d291f51eca3d35f07e43222c755bcf 100644
--- a/example/storage/qspi_spiffs/configs/d2000_aarch64_test_qspi_spiffs.config
+++ b/example/storage/qspi_spiffs/configs/d2000_aarch64_test_qspi_spiffs.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -120,8 +114,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -149,6 +141,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -188,7 +181,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -313,7 +307,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -343,10 +336,12 @@ CONFIG_SPIFFS_ON_FQSPI_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -366,4 +361,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/qspi_spiffs/configs/e2000d_aarch32_demo_qspi_spiffs.config b/example/storage/qspi_spiffs/configs/e2000d_aarch32_demo_qspi_spiffs.config
index 1703c227e8eef68a5746c8487f8e718dd475d8e8..b1a77616c8df1a726b9f25a3db7b4e21f6aed6ef 100644
--- a/example/storage/qspi_spiffs/configs/e2000d_aarch32_demo_qspi_spiffs.config
+++ b/example/storage/qspi_spiffs/configs/e2000d_aarch32_demo_qspi_spiffs.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -131,8 +133,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +160,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +200,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -328,7 +330,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -358,10 +359,12 @@ CONFIG_SPIFFS_ON_FQSPI_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -381,4 +384,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/qspi_spiffs/configs/e2000d_aarch64_demo_qspi_spiffs.config b/example/storage/qspi_spiffs/configs/e2000d_aarch64_demo_qspi_spiffs.config
index e3067710cfe28d38dab62c8b307bfb03bd4f2519..c83d92039da380d11c4bd91c639c8825b3b0fbac 100644
--- a/example/storage/qspi_spiffs/configs/e2000d_aarch64_demo_qspi_spiffs.config
+++ b/example/storage/qspi_spiffs/configs/e2000d_aarch64_demo_qspi_spiffs.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -133,8 +127,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +154,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +194,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +320,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -356,10 +349,12 @@ CONFIG_SPIFFS_ON_FQSPI_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -379,4 +374,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/qspi_spiffs/configs/e2000q_aarch32_demo_qspi_spiffs.config b/example/storage/qspi_spiffs/configs/e2000q_aarch32_demo_qspi_spiffs.config
index 7bbe96f46a5f8c23d979d4ad26c428ae81a516a9..b7ca8b01f65108992c445b6ca1618c46ad8e7d5c 100644
--- a/example/storage/qspi_spiffs/configs/e2000q_aarch32_demo_qspi_spiffs.config
+++ b/example/storage/qspi_spiffs/configs/e2000q_aarch32_demo_qspi_spiffs.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -130,8 +132,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +159,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +199,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +329,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -357,10 +358,12 @@ CONFIG_SPIFFS_ON_FQSPI_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -380,4 +383,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/qspi_spiffs/configs/e2000q_aarch64_demo_qspi_spiffs.config b/example/storage/qspi_spiffs/configs/e2000q_aarch64_demo_qspi_spiffs.config
index df99c994cfd770ef3a0b7ad578560b027945b5fa..97ee3acff469e5f2115f14a43ce6689b9eeb2e88 100644
--- a/example/storage/qspi_spiffs/configs/e2000q_aarch64_demo_qspi_spiffs.config
+++ b/example/storage/qspi_spiffs/configs/e2000q_aarch64_demo_qspi_spiffs.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -132,8 +126,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +153,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -325,7 +319,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -355,10 +348,12 @@ CONFIG_SPIFFS_ON_FQSPI_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -378,4 +373,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/qspi_spiffs/configs/ft2004_aarch32_dsk_qspi_spiffs.config b/example/storage/qspi_spiffs/configs/ft2004_aarch32_dsk_qspi_spiffs.config
index e94b5547b66c0bced611bbdf8333a73a4659418a..d599be23f4176d57177618be73158227b91563f5 100644
--- a/example/storage/qspi_spiffs/configs/ft2004_aarch32_dsk_qspi_spiffs.config
+++ b/example/storage/qspi_spiffs/configs/ft2004_aarch32_dsk_qspi_spiffs.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -118,8 +120,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -147,6 +147,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -186,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -315,7 +317,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -345,10 +346,12 @@ CONFIG_SPIFFS_ON_FQSPI_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -368,4 +371,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/qspi_spiffs/configs/ft2004_aarch64_dsk_qspi_spiffs.config b/example/storage/qspi_spiffs/configs/ft2004_aarch64_dsk_qspi_spiffs.config
index 35dd7c51d27a1432509beffdac9933c32f1fd4b7..dae594e8690355ddc517e11571060ebde653c258 100644
--- a/example/storage/qspi_spiffs/configs/ft2004_aarch64_dsk_qspi_spiffs.config
+++ b/example/storage/qspi_spiffs/configs/ft2004_aarch64_dsk_qspi_spiffs.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -120,8 +114,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -149,6 +141,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -188,7 +181,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -313,7 +307,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -343,10 +336,12 @@ CONFIG_SPIFFS_ON_FQSPI_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -366,4 +361,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/qspi_spiffs/configs/phytiumpi_aarch32_firefly_qspi_spiffs.config b/example/storage/qspi_spiffs/configs/phytiumpi_aarch32_firefly_qspi_spiffs.config
index 22c145c38bc6c4555b8bfc77260bd1d0ded6a723..2868e500cd716b4ae8700c7d813a12941ebe91cb 100644
--- a/example/storage/qspi_spiffs/configs/phytiumpi_aarch32_firefly_qspi_spiffs.config
+++ b/example/storage/qspi_spiffs/configs/phytiumpi_aarch32_firefly_qspi_spiffs.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -129,8 +131,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -158,6 +158,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -197,7 +198,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +328,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -356,10 +357,12 @@ CONFIG_SPIFFS_ON_FQSPI_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -379,4 +382,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/qspi_spiffs/configs/phytiumpi_aarch64_firefly_qspi_spiffs.config b/example/storage/qspi_spiffs/configs/phytiumpi_aarch64_firefly_qspi_spiffs.config
index 2594a2266d72c72f5ca25e9233653a7870e32708..79ec63e31c09101f9e4bad279db759622cb9eb79 100644
--- a/example/storage/qspi_spiffs/configs/phytiumpi_aarch64_firefly_qspi_spiffs.config
+++ b/example/storage/qspi_spiffs/configs/phytiumpi_aarch64_firefly_qspi_spiffs.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -131,8 +125,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -324,7 +318,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -354,10 +347,12 @@ CONFIG_SPIFFS_ON_FQSPI_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -377,4 +372,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/qspi_spiffs/sdkconfig b/example/storage/qspi_spiffs/sdkconfig
index 35dd7c51d27a1432509beffdac9933c32f1fd4b7..79ec63e31c09101f9e4bad279db759622cb9eb79 100644
--- a/example/storage/qspi_spiffs/sdkconfig
+++ b/example/storage/qspi_spiffs/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -36,7 +30,6 @@ CONFIG_GCC_CODE_MODEL_SMALL=y
# end of Compiler configuration
CONFIG_USE_CACHE=y
-# CONFIG_USE_L3CACHE is not set
CONFIG_USE_MMU=y
# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
# CONFIG_MMU_DEBUG_PRINTS is not set
@@ -46,18 +39,19 @@ CONFIG_USE_MMU=y
#
# Soc configuration
#
-# CONFIG_TARGET_PHYTIUMPI is not set
+CONFIG_TARGET_PHYTIUMPI=y
# CONFIG_TARGET_E2000Q is not set
# CONFIG_TARGET_E2000D is not set
# CONFIG_TARGET_E2000S is not set
-CONFIG_TARGET_FT2004=y
+# CONFIG_TARGET_FT2004 is not set
# CONFIG_TARGET_D2000 is not set
-CONFIG_SOC_NAME="ft2004"
+CONFIG_SOC_NAME="phytiumpi"
CONFIG_SOC_CORE_NUM=4
CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
# CONFIG_USE_SPINLOCK is not set
CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
@@ -67,12 +61,23 @@ CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
#
# Board Configuration
#
-CONFIG_BOARD_NAME="dsk"
-CONFIG_FT2004_DSK_BOARD=y
+CONFIG_BOARD_NAME="firefly"
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+CONFIG_FIREFLY_DEMO_BOARD=y
#
# IO mux configuration when board start up
#
+# end of IO mux configuration when board start up
+
# CONFIG_CUS_DEMO_BOARD is not set
#
@@ -109,8 +114,8 @@ CONFIG_INTERRUPT_ROLE_MASTER=y
# Drivers configuration
#
CONFIG_USE_IOMUX=y
-CONFIG_ENABLE_IOCTRL=y
-# CONFIG_ENABLE_IOPAD is not set
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
CONFIG_USE_QSPI=y
@@ -120,8 +125,6 @@ CONFIG_USE_QSPI=y
CONFIG_USE_FQSPI=y
# end of Qspi Configuration
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -149,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -188,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -313,7 +318,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -343,10 +347,12 @@ CONFIG_SPIFFS_ON_FQSPI_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -366,4 +372,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/qspi_spiffs/sdkconfig.h b/example/storage/qspi_spiffs/sdkconfig.h
index e2ecd696274131dba276cef6d7f5993e6ae427e3..08ae0eb95f4fe413494b3709f24edd6f432dd078 100644
--- a/example/storage/qspi_spiffs/sdkconfig.h
+++ b/example/storage/qspi_spiffs/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -33,7 +29,6 @@
/* CONFIG_GCC_CODE_MODEL_LARGE is not set */
/* end of Compiler configuration */
#define CONFIG_USE_CACHE
-/* CONFIG_USE_L3CACHE is not set */
#define CONFIG_USE_MMU
/* CONFIG_BOOT_WITH_FLUSH_CACHE is not set */
/* CONFIG_MMU_DEBUG_PRINTS is not set */
@@ -42,18 +37,19 @@
/* Soc configuration */
-/* CONFIG_TARGET_PHYTIUMPI is not set */
+#define CONFIG_TARGET_PHYTIUMPI
/* CONFIG_TARGET_E2000Q is not set */
/* CONFIG_TARGET_E2000D is not set */
/* CONFIG_TARGET_E2000S is not set */
-#define CONFIG_TARGET_FT2004
+/* CONFIG_TARGET_FT2004 is not set */
/* CONFIG_TARGET_D2000 is not set */
-#define CONFIG_SOC_NAME "ft2004"
+#define CONFIG_SOC_NAME "phytiumpi"
#define CONFIG_SOC_CORE_NUM 4
#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
+#define CONFIG_TARGET_E2000
/* CONFIG_USE_SPINLOCK is not set */
#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
@@ -62,11 +58,21 @@
/* Board Configuration */
-#define CONFIG_BOARD_NAME "dsk"
-#define CONFIG_FT2004_DSK_BOARD
+#define CONFIG_BOARD_NAME "firefly"
+/* CONFIG_USE_SPI_IOPAD is not set */
+/* CONFIG_USE_GPIO_IOPAD is not set */
+/* CONFIG_USE_CAN_IOPAD is not set */
+/* CONFIG_USE_QSPI_IOPAD is not set */
+/* CONFIG_USE_PWM_IOPAD is not set */
+/* CONFIG_USE_MIO_IOPAD is not set */
+/* CONFIG_USE_TACHO_IOPAD is not set */
+/* CONFIG_USE_UART_IOPAD is not set */
+/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
+#define CONFIG_FIREFLY_DEMO_BOARD
/* IO mux configuration when board start up */
+/* end of IO mux configuration when board start up */
/* CONFIG_CUS_DEMO_BOARD is not set */
/* Build project name */
@@ -99,8 +105,8 @@
/* Drivers configuration */
#define CONFIG_USE_IOMUX
-#define CONFIG_ENABLE_IOCTRL
-/* CONFIG_ENABLE_IOPAD is not set */
+/* CONFIG_ENABLE_IOCTRL is not set */
+#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
#define CONFIG_USE_QSPI
@@ -108,8 +114,6 @@
#define CONFIG_USE_FQSPI
/* end of Qspi Configuration */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -135,6 +139,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -170,7 +175,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -274,7 +280,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
#define CONFIG_USE_SFUD
@@ -300,9 +305,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -322,6 +329,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/storage/spim_spiffs/configs/e2000d_aarch32_demo_spi_spiffs.config b/example/storage/spim_spiffs/configs/e2000d_aarch32_demo_spi_spiffs.config
index d5bc05a97ffd3cb69d60b4764ba897a8efbe897a..805d95f2c14c2034e902e5d4169641c72a62e54f 100644
--- a/example/storage/spim_spiffs/configs/e2000d_aarch32_demo_spi_spiffs.config
+++ b/example/storage/spim_spiffs/configs/e2000d_aarch32_demo_spi_spiffs.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -125,8 +127,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +154,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +194,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -322,7 +324,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -351,10 +352,12 @@ CONFIG_SPIFFS_ON_FSPIM_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -374,4 +377,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/spim_spiffs/configs/e2000d_aarch64_demo_spi_spiffs.config b/example/storage/spim_spiffs/configs/e2000d_aarch64_demo_spi_spiffs.config
index 249fae5fc1b69ac807998e974aeb4ee84f8979d2..fd73fca116e4315274b0a0f9c1cd8f1b1b200ec8 100644
--- a/example/storage/spim_spiffs/configs/e2000d_aarch64_demo_spi_spiffs.config
+++ b/example/storage/spim_spiffs/configs/e2000d_aarch64_demo_spi_spiffs.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -127,8 +121,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -156,6 +148,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -195,7 +188,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +314,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -349,10 +342,12 @@ CONFIG_SPIFFS_ON_FSPIM_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -372,4 +367,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/spim_spiffs/configs/e2000q_aarch32_demo_spi_spiffs.config b/example/storage/spim_spiffs/configs/e2000q_aarch32_demo_spi_spiffs.config
index a2987be11e6b4ecf2a992be85676705ba956f24b..b00f0d3c18c304ef28406616f20fc6a363f256f2 100644
--- a/example/storage/spim_spiffs/configs/e2000q_aarch32_demo_spi_spiffs.config
+++ b/example/storage/spim_spiffs/configs/e2000q_aarch32_demo_spi_spiffs.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -124,8 +126,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -153,6 +153,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -192,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,7 +323,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -350,10 +351,12 @@ CONFIG_SPIFFS_ON_FSPIM_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -373,4 +376,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/spim_spiffs/configs/e2000q_aarch64_demo_spi_spiffs.config b/example/storage/spim_spiffs/configs/e2000q_aarch64_demo_spi_spiffs.config
index cfbb5cc55f83a7a669ea0876b5198982c51f6b37..7d7a2df27c0589cc55ec409f1a64499933b6f1fc 100644
--- a/example/storage/spim_spiffs/configs/e2000q_aarch64_demo_spi_spiffs.config
+++ b/example/storage/spim_spiffs/configs/e2000q_aarch64_demo_spi_spiffs.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -126,8 +120,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -155,6 +147,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -194,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -348,10 +341,12 @@ CONFIG_SPIFFS_ON_FSPIM_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -371,4 +366,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/spim_spiffs/configs/phytiumpi_aarch32_firefly_spi_spiffs.config b/example/storage/spim_spiffs/configs/phytiumpi_aarch32_firefly_spi_spiffs.config
index 60c46cd74ad14a3a4525c1aa4e5f2d39487379ee..11af8a52de9f2b2225603fe1208bff272d9ca80a 100644
--- a/example/storage/spim_spiffs/configs/phytiumpi_aarch32_firefly_spi_spiffs.config
+++ b/example/storage/spim_spiffs/configs/phytiumpi_aarch32_firefly_spi_spiffs.config
@@ -24,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -123,8 +125,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -152,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -191,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,7 +322,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -349,10 +350,12 @@ CONFIG_SPIFFS_ON_FSPIM_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -372,4 +375,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/spim_spiffs/configs/phytiumpi_aarch64_firefly_spi_spiffs.config b/example/storage/spim_spiffs/configs/phytiumpi_aarch64_firefly_spi_spiffs.config
index 70c2d0a1be4596f5e5eb62f59568423f8633ef74..8075bf31588c3d8b8c41fb0bbc5feec860326a5d 100644
--- a/example/storage/spim_spiffs/configs/phytiumpi_aarch64_firefly_spi_spiffs.config
+++ b/example/storage/spim_spiffs/configs/phytiumpi_aarch64_firefly_spi_spiffs.config
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +146,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +186,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -318,7 +312,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -347,10 +340,12 @@ CONFIG_SPIFFS_ON_FSPIM_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -370,4 +365,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/spim_spiffs/sdkconfig b/example/storage/spim_spiffs/sdkconfig
index 70c2d0a1be4596f5e5eb62f59568423f8633ef74..8075bf31588c3d8b8c41fb0bbc5feec860326a5d 100644
--- a/example/storage/spim_spiffs/sdkconfig
+++ b/example/storage/spim_spiffs/sdkconfig
@@ -20,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -125,8 +119,6 @@ CONFIG_ENABLE_IOPAD=y
CONFIG_USE_SPI=y
CONFIG_USE_FSPIM=y
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +146,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +186,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -318,7 +312,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
CONFIG_USE_SFUD=y
@@ -347,10 +340,12 @@ CONFIG_SPIFFS_ON_FSPIM_SFUD=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -370,4 +365,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/storage/spim_spiffs/sdkconfig.h b/example/storage/spim_spiffs/sdkconfig.h
index af08634c12c6faabe251807bd3a9211b67be1f9d..d0eb0d02acb5287efab026626ba8feb7e79ba159 100644
--- a/example/storage/spim_spiffs/sdkconfig.h
+++ b/example/storage/spim_spiffs/sdkconfig.h
@@ -20,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -114,8 +110,6 @@
#define CONFIG_USE_SPI
#define CONFIG_USE_FSPIM
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -141,6 +135,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -176,7 +171,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -280,7 +276,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
#define CONFIG_USE_SFUD
@@ -305,9 +300,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -327,6 +324,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/system/amp/openamp/README.md b/example/system/amp/openamp/README.md
index 63a1866127be06a78113c158af363faf6fbb9d66..8396f7599fb0cedf3befebf7a2c002c952f4a3fd 100644
--- a/example/system/amp/openamp/README.md
+++ b/example/system/amp/openamp/README.md
@@ -9,11 +9,10 @@
1. 提供生命周期管理
2. 兼容裸跑、RTOS等不同的软件环境
-3. 兼容linux系统中的 remoteproc, rpmsg and VirtIO 模块
- 本例程基于开源openamp项目
[OpenAMP](https://github.com/OpenAMP/open-amp.git)
-- 本例程主要提供了D2000/FT2004/E2000D/E2000Q/PHYTIUMPI RTOS与RTOS之间的测试例程 ,RTOS 与 linux kernel 的测试例程
+- 本例程主要提供了D2000/FT2004/E2000D/E2000Q/PHYTIUMPI RTOS与RTOS之间的测试例程
- 本例程演示rpmsg用法的示例演示应用程序。此应用core0 中的程序为从机程序,core1 中的程序为主机程序,其目标是从核程序工作在echo 模式下,主核主动发送数据之后,从机程序会将收到的数据重新回复回来
## 2. 如何使用例程
@@ -24,7 +23,7 @@
> 哪些硬件平台是支持的,需要哪些外设,例程与开发板哪些IO口相关等(建议附录开发板照片,展示哪些IO口被引出)
-1. 准备一块d2000 E2000Q/D firefly开发板
+1. 准备一块d2000 或者 E2000Q/D 或者 firefly 或者FT2004开发板
2. 将串口连接好电脑,波特率设为 115200-8-1-N
### 2.2 SDK配置方法
@@ -66,7 +65,7 @@
- Vring rx address : 共享接收缓冲区的起始地址
- table of base physical address of each of the pages in the I/O region : 用于核心间提醒机制的共享内存初始点
- DEBUG_CODE : 增加裸跑shell 功能
-- TARGET_CPU_ID : 主核心用于唤醒从核的ID
+- TARGET_CPU_MASK : 主核心用于唤醒从核的ID
- Destination IPI mask : ipi 中断中,用于唤醒其他核心的掩码
- Spin-lock shared memory : 互斥锁中关注的共享内存
- Select mem default attribute : 提供内存属性选择
@@ -76,9 +75,9 @@
> 描述输入输出情况,列出存在哪些输入,对应的输出是什么(建议附录相关现象图片)
#### aarch32 裸跑程序测试 (rtos间)
-以D2000为例
+以E2000D为例
1. 在编译环境下,切换至 example/amp/openamp 目录
-- 1.1 输入 'make config_d2000_aarch32' 等命令加载默所需要的配置信息
+- 1.1 输入 'make config_e2000d_aarch64' 等命令加载默所需要的配置信息
- 1.2 先将 ./core0/makefile 与 ./core1/makefile 中 的 USR_BOOT_DIR 修改为您的tftp 所覆盖的目录
- 1.3 输入 'make image' 编译core0 / core1 代码,并且生成对应的elf 文件并将生成的 elf 文件拷贝至 tftp 的目录下
2. 使用串口连接开发板 ,并且打开串口终端工具
@@ -96,18 +95,18 @@
- 2.3 会显示如下内容
- 
+ 
-- 2.4 输入 'loadelf -p f1000000' 加载从核程序
-- 2.5 输入 'rpmsg_echo_task' 运行openamp 测试程序
-- 2.6 结果显示为
+- 2.4 输入 'openamp_echo auto' 运行openamp 测试程序
+- 2.5 结果显示为

+ 
#### aarch64 裸跑程序测试 (rtos间)
-以D2000为例
+以E2000D为例
1. 在编译环境下,切换至 example/amp/openamp 目录
-- 1.1 输入 'make config_d2000_aarch64' 等命令加载默所需要的配置信息
+- 1.1 输入 'make config_e2000d_aarch64' 等命令加载默所需要的配置信息
- 1.2 先将 ./core0/makefile 与 ./core1/makefile 中 的 USR_BOOT_DIR 修改为您的tftp 所覆盖的目录
- 1.3 输入 'make image' 编译core0 / core1 代码,并且生成对应的elf 文件并将生成的 elf 文件拷贝至 tftp 的目录下
2. 使用串口连接开发板 ,并且打开串口终端工具
@@ -125,38 +124,13 @@
- 2.3 会显示如下内容
- 
+ 
-- 2.4 输入 'loadelf -p f1000000' 加载从核程序
-- 2.5 输入 'rpmsg_echo_task' 运行openamp 测试程序
-- 2.6 结果显示为
+- 2.4 输入 'openamp_echo auto' 运行openamp 测试程序
+- 2.5 结果显示为

-
-#### D2000/E2000 aarch32 裸机程序测试 (与linux)
-以D2000为例
-1. 进入amp/openamp 目录
-2. 进入 ./core0 下 ,输入 make load_d2000_aarch32 ,加载预先配置信息
-3. 输入make menuconfig ,在 Project Configuration → AMP Config 下 取消 DEBUG_CODE
- 
-4. 在 Third-Party Configuration → Use Asymmetric Multi-processing → OpenAmp 下,选择 Skip local rvdev->shbuf_io ,并选择Use the Vring definition in the master
- 
-5. 在Building Option → Interrupt role select 选项中选择 use slave role
- 
-6. 进入core0 目录下输入 "make clean" "make" ,生成elf 文件之后,将其拷贝至linux 指定目录下
- 
-
-#### D2000/E2000 aarch64 裸机程序测试 (与linux)
-以D2000为例
-1. 进入amp/openamp 目录
-2. 进入 ./core0 下,输入 make load_d2000_aarch64 ,加载预先配置信息
-3. 输入make menuconfig ,在 Project Configuration → AMP Config 下 取消 DEBUG_CODE
-4. 在 Third-Party Configuration → Use Asymmetric Multi-processing → OpenAmp 下,选择 Skip local rvdev->shbuf_io ,并选择Use the Vring definition in the master
- 
-5. 在Building Option → Interrupt role select 选项中选择 use slave role
- 
-6. 进入core0 目录下输入 "make clean" "make" ,生成elf 文件之后,将其拷贝至linux 指定目录下
- 
+ 
## 3. 如何解决问题 (Q&A)
> 主要记录使用例程中可能会遇到的问题,给出相应的解决方案
@@ -166,3 +140,4 @@
- 2021-03-21 :v0.1.0 初始化项目
- 2023-03-09 : v0.2.0 增加对e2000 的支持
+- 2023-10-26 : v0.3.0 openamp所以测试例程适配
\ No newline at end of file
diff --git a/example/system/amp/openamp/core0/Kconfig b/example/system/amp/openamp/core0/Kconfig
index b7dfdb4b54c0741e799591991b429bc9921e74b3..f5171e00bdf245a65c52244afebf1e74ddea3632 100644
--- a/example/system/amp/openamp/core0/Kconfig
+++ b/example/system/amp/openamp/core0/Kconfig
@@ -4,23 +4,13 @@
#
-mainmenu "Phytium Freertos Configuration"
+mainmenu "Phytium FreeRTOS Configuration"
menu "Project Configuration"
- menu " Freertos Configuration"
- config TARGET_NAME
- string "Build Target Name"
- default "openamp_core0"
- help
- Build Target name for the demo
-
- config SHM_BASE_ADDR
- hex "Share memory address set"
- default 0xc0000000
-
- endmenu
-
+ config SHM_BASE_ADDR
+ hex "Share memory address set"
+ default 0xc0000000
menu "AMP Config"
@@ -36,7 +26,7 @@ mainmenu "Phytium Freertos Configuration"
hex "Spin-lock shared memory"
default 0x80000000
- config TARGET_CPU_ID
+ config TARGET_CPU_MASK
int "Destination CPU id"
default 1
@@ -46,13 +36,6 @@ mainmenu "Phytium Freertos Configuration"
help
Each bit represents a CPU, for example, 0x3 represents CPU 0 and CPU 3 in the code.
- config DEBUG_CODE
- bool
- prompt "DEBUG_CODE"
- default 1
- help
- Debug mode means using two bare metal code to simulate the operation of OpenAMP program
-
endmenu
endmenu
diff --git a/example/system/amp/openamp/core0/configs/d2000_aarch32_test_openamp_core0.config b/example/system/amp/openamp/core0/configs/d2000_aarch32_test_openamp_core0.config
index 127c60c7de58da0d9ac342ff85f744c0caed1c01..ff8b551b335c161e4763414f3e4896f31fae099d 100644
--- a/example/system/amp/openamp/core0/configs/d2000_aarch32_test_openamp_core0.config
+++ b/example/system/amp/openamp/core0/configs/d2000_aarch32_test_openamp_core0.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core0"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# AMP Config
@@ -16,9 +10,8 @@ CONFIG_SHM_BASE_ADDR=0xc0000000
CONFIG_IPI_IRQ_NUM=9
CONFIG_IPI_IRQ_NUM_PRIORITY=16
CONFIG_SPIN_MEM=0x80000000
-CONFIG_TARGET_CPU_ID=2
+CONFIG_TARGET_CPU_MASK=2
CONFIG_IPI_CHN_BITMASK=255
-CONFIG_DEBUG_CODE=y
# end of AMP Config
# end of Project Configuration
@@ -48,13 +41,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -100,6 +95,7 @@ CONFIG_D2000_TEST_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core0"
# end of Build project name
# end of Board Configuration
@@ -134,8 +130,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -163,13 +157,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -202,7 +197,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -355,7 +351,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -366,10 +361,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -389,4 +386,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core0/configs/d2000_aarch64_test_openamp_core0.config b/example/system/amp/openamp/core0/configs/d2000_aarch64_test_openamp_core0.config
index 8053bc899578e29fde360973c14ce77c96d8ac6b..99bb790b14c9653e000beb38b929b744f6e01f37 100644
--- a/example/system/amp/openamp/core0/configs/d2000_aarch64_test_openamp_core0.config
+++ b/example/system/amp/openamp/core0/configs/d2000_aarch64_test_openamp_core0.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core0"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# AMP Config
@@ -16,9 +10,8 @@ CONFIG_SHM_BASE_ADDR=0xc0000000
CONFIG_IPI_IRQ_NUM=9
CONFIG_IPI_IRQ_NUM_PRIORITY=16
CONFIG_SPIN_MEM=0x80000000
-CONFIG_TARGET_CPU_ID=2
+CONFIG_TARGET_CPU_MASK=2
CONFIG_IPI_CHN_BITMASK=255
-CONFIG_DEBUG_CODE=y
# end of AMP Config
# end of Project Configuration
@@ -44,13 +37,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -102,6 +89,7 @@ CONFIG_D2000_TEST_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core0"
# end of Build project name
# end of Board Configuration
@@ -136,8 +124,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -165,13 +151,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -204,7 +191,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -353,7 +341,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -364,10 +351,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -387,4 +376,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core0/configs/e2000d_aarch32_demo_openamp_core0.config b/example/system/amp/openamp/core0/configs/e2000d_aarch32_demo_openamp_core0.config
index 9a5838bd14be7212dddd78d4b5495aacc12c90ae..7cc162e273f8d3aa2b2d1c6520a528036fefcaaa 100644
--- a/example/system/amp/openamp/core0/configs/e2000d_aarch32_demo_openamp_core0.config
+++ b/example/system/amp/openamp/core0/configs/e2000d_aarch32_demo_openamp_core0.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core0"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# AMP Config
@@ -16,9 +10,8 @@ CONFIG_SHM_BASE_ADDR=0xc0000000
CONFIG_IPI_IRQ_NUM=9
CONFIG_IPI_IRQ_NUM_PRIORITY=16
CONFIG_SPIN_MEM=0x80000000
-CONFIG_TARGET_CPU_ID=1
+CONFIG_TARGET_CPU_MASK=1
CONFIG_IPI_CHN_BITMASK=2
-CONFIG_DEBUG_CODE=y
# end of AMP Config
# end of Project Configuration
@@ -48,13 +41,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -113,6 +108,7 @@ CONFIG_BOARD_NAME="demo"
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core0"
# end of Build project name
# end of Board Configuration
@@ -147,8 +143,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -176,13 +170,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -215,7 +210,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -368,7 +364,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -379,10 +374,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -402,4 +399,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core0/configs/e2000d_aarch64_demo_openamp_core0.config b/example/system/amp/openamp/core0/configs/e2000d_aarch64_demo_openamp_core0.config
index e27240d97de3f2f7f72adcb082e8a6f26c6f38eb..bb4291464ec838154de4645c403827b86cec151e 100644
--- a/example/system/amp/openamp/core0/configs/e2000d_aarch64_demo_openamp_core0.config
+++ b/example/system/amp/openamp/core0/configs/e2000d_aarch64_demo_openamp_core0.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core0"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# AMP Config
@@ -16,9 +10,8 @@ CONFIG_SHM_BASE_ADDR=0xc0000000
CONFIG_IPI_IRQ_NUM=9
CONFIG_IPI_IRQ_NUM_PRIORITY=16
CONFIG_SPIN_MEM=0x80000000
-CONFIG_TARGET_CPU_ID=1
+CONFIG_TARGET_CPU_MASK=1
CONFIG_IPI_CHN_BITMASK=2
-CONFIG_DEBUG_CODE=y
# end of AMP Config
# end of Project Configuration
@@ -44,13 +37,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -115,6 +102,7 @@ CONFIG_BOARD_NAME="demo"
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core0"
# end of Build project name
# end of Board Configuration
@@ -149,8 +137,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -178,13 +164,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -217,7 +204,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -366,7 +354,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -377,10 +364,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -400,4 +389,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core0/configs/e2000q_aarch32_demo_openamp_core0.config b/example/system/amp/openamp/core0/configs/e2000q_aarch32_demo_openamp_core0.config
index cf6c540a44bb2c0b7d953de610eb2f01f39f058b..d0f3d8ddd404030e02dff6ebfd5eb9055b4bbbe2 100644
--- a/example/system/amp/openamp/core0/configs/e2000q_aarch32_demo_openamp_core0.config
+++ b/example/system/amp/openamp/core0/configs/e2000q_aarch32_demo_openamp_core0.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core0"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# AMP Config
@@ -16,9 +10,8 @@ CONFIG_SHM_BASE_ADDR=0xc0000000
CONFIG_IPI_IRQ_NUM=9
CONFIG_IPI_IRQ_NUM_PRIORITY=16
CONFIG_SPIN_MEM=0x80000000
-CONFIG_TARGET_CPU_ID=3
+CONFIG_TARGET_CPU_MASK=3
CONFIG_IPI_CHN_BITMASK=8
-CONFIG_DEBUG_CODE=y
# end of AMP Config
# end of Project Configuration
@@ -48,13 +41,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -112,6 +107,7 @@ CONFIG_E2000Q_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core0"
# end of Build project name
# end of Board Configuration
@@ -146,8 +142,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -175,13 +169,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -214,7 +209,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -367,7 +363,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -378,10 +373,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -401,4 +398,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core0/configs/e2000q_aarch64_demo_openamp_core0.config b/example/system/amp/openamp/core0/configs/e2000q_aarch64_demo_openamp_core0.config
index f44a8ba95c603d0e846d3b431eacc614bd166f85..9f69bcfd16d72115bd25973d15df6f45a3cdd9ce 100644
--- a/example/system/amp/openamp/core0/configs/e2000q_aarch64_demo_openamp_core0.config
+++ b/example/system/amp/openamp/core0/configs/e2000q_aarch64_demo_openamp_core0.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core0"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# AMP Config
@@ -16,9 +10,8 @@ CONFIG_SHM_BASE_ADDR=0xc0000000
CONFIG_IPI_IRQ_NUM=9
CONFIG_IPI_IRQ_NUM_PRIORITY=16
CONFIG_SPIN_MEM=0x80000000
-CONFIG_TARGET_CPU_ID=3
+CONFIG_TARGET_CPU_MASK=3
CONFIG_IPI_CHN_BITMASK=8
-CONFIG_DEBUG_CODE=y
# end of AMP Config
# end of Project Configuration
@@ -44,13 +37,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -114,6 +101,7 @@ CONFIG_E2000Q_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core0"
# end of Build project name
# end of Board Configuration
@@ -148,8 +136,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -177,13 +163,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -216,7 +203,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -365,7 +353,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -376,10 +363,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -399,4 +388,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core0/configs/ft2004_aarch32_dsk_openamp_core0.config b/example/system/amp/openamp/core0/configs/ft2004_aarch32_dsk_openamp_core0.config
index e5f56071272fcd2e4c9b8333d82bb8bbdd0e7199..072af39c4d7e7e1baf04824921f40af1d436dfcc 100644
--- a/example/system/amp/openamp/core0/configs/ft2004_aarch32_dsk_openamp_core0.config
+++ b/example/system/amp/openamp/core0/configs/ft2004_aarch32_dsk_openamp_core0.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core0"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# AMP Config
@@ -16,9 +10,8 @@ CONFIG_SHM_BASE_ADDR=0xc0000000
CONFIG_IPI_IRQ_NUM=9
CONFIG_IPI_IRQ_NUM_PRIORITY=1
CONFIG_SPIN_MEM=0x80000000
-CONFIG_TARGET_CPU_ID=1
+CONFIG_TARGET_CPU_MASK=1
CONFIG_IPI_CHN_BITMASK=2
-CONFIG_DEBUG_CODE=y
# end of AMP Config
# end of Project Configuration
@@ -48,13 +41,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -100,6 +95,7 @@ CONFIG_FT2004_DSK_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core0"
# end of Build project name
# end of Board Configuration
@@ -134,8 +130,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -163,13 +157,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -202,7 +197,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -355,7 +351,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -366,10 +361,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -389,4 +386,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core0/configs/ft2004_aarch64_dsk_openamp_core0.config b/example/system/amp/openamp/core0/configs/ft2004_aarch64_dsk_openamp_core0.config
index 2507dc2b4baf30303e8eb128bcb5cdf74f336bd4..0272e49ff661954ba52b454356cb46083445d379 100644
--- a/example/system/amp/openamp/core0/configs/ft2004_aarch64_dsk_openamp_core0.config
+++ b/example/system/amp/openamp/core0/configs/ft2004_aarch64_dsk_openamp_core0.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core0"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# AMP Config
@@ -16,9 +10,8 @@ CONFIG_SHM_BASE_ADDR=0xc0000000
CONFIG_IPI_IRQ_NUM=9
CONFIG_IPI_IRQ_NUM_PRIORITY=1
CONFIG_SPIN_MEM=0x80000000
-CONFIG_TARGET_CPU_ID=1
+CONFIG_TARGET_CPU_MASK=1
CONFIG_IPI_CHN_BITMASK=2
-CONFIG_DEBUG_CODE=y
# end of AMP Config
# end of Project Configuration
@@ -44,13 +37,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -102,6 +89,7 @@ CONFIG_FT2004_DSK_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core0"
# end of Build project name
# end of Board Configuration
@@ -136,8 +124,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -165,13 +151,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -204,7 +191,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -353,7 +341,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -364,10 +351,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -387,4 +376,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core0/configs/phytiumpi_aarch32_firefly_openamp_core0.config b/example/system/amp/openamp/core0/configs/phytiumpi_aarch32_firefly_openamp_core0.config
index 56ac7eb3db32fd6c3fdf85e07c839f9529c3e4af..a0c986e38ea5141ebed60609f8d10d9695602544 100644
--- a/example/system/amp/openamp/core0/configs/phytiumpi_aarch32_firefly_openamp_core0.config
+++ b/example/system/amp/openamp/core0/configs/phytiumpi_aarch32_firefly_openamp_core0.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core0"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# AMP Config
@@ -16,9 +10,8 @@ CONFIG_SHM_BASE_ADDR=0xc0000000
CONFIG_IPI_IRQ_NUM=9
CONFIG_IPI_IRQ_NUM_PRIORITY=16
CONFIG_SPIN_MEM=0x80000000
-CONFIG_TARGET_CPU_ID=3
+CONFIG_TARGET_CPU_MASK=3
CONFIG_IPI_CHN_BITMASK=8
-CONFIG_DEBUG_CODE=y
# end of AMP Config
# end of Project Configuration
@@ -48,13 +41,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,6 +106,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core0"
# end of Build project name
# end of Board Configuration
@@ -145,8 +141,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -174,13 +168,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -213,7 +208,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -366,7 +362,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -377,10 +372,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -400,4 +397,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core0/configs/phytiumpi_aarch64_firefly_openamp_core0.config b/example/system/amp/openamp/core0/configs/phytiumpi_aarch64_firefly_openamp_core0.config
index bdd713ed32f5b1f061de3430b11b2c13986a156c..fffafbc7c62d0d32f3b3244b709c7fb29fd6a3d0 100644
--- a/example/system/amp/openamp/core0/configs/phytiumpi_aarch64_firefly_openamp_core0.config
+++ b/example/system/amp/openamp/core0/configs/phytiumpi_aarch64_firefly_openamp_core0.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core0"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# AMP Config
@@ -16,9 +10,8 @@ CONFIG_SHM_BASE_ADDR=0xc0000000
CONFIG_IPI_IRQ_NUM=9
CONFIG_IPI_IRQ_NUM_PRIORITY=16
CONFIG_SPIN_MEM=0x80000000
-CONFIG_TARGET_CPU_ID=3
+CONFIG_TARGET_CPU_MASK=3
CONFIG_IPI_CHN_BITMASK=8
-CONFIG_DEBUG_CODE=y
# end of AMP Config
# end of Project Configuration
@@ -44,13 +37,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,6 +100,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core0"
# end of Build project name
# end of Board Configuration
@@ -147,8 +135,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -176,13 +162,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -215,7 +202,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -364,7 +352,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -375,10 +362,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -398,4 +387,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core0/main.c b/example/system/amp/openamp/core0/main.c
index f7da9336fa74a0e9447873dc2489cb78a0910be3..bf1caa3343e2309958a9991f34d8a3fb772dac54 100644
--- a/example/system/amp/openamp/core0/main.c
+++ b/example/system/amp/openamp/core0/main.c
@@ -37,11 +37,7 @@
#define OPENAMP_MAIN_DEBUG_W(format, ...) FT_DEBUG_PRINT_W(OPENAMP_MAIN_DEBUG_TAG, format, ##__VA_ARGS__)
#define OPENAMP_MAIN_DEBUG_E(format, ...) FT_DEBUG_PRINT_E(OPENAMP_MAIN_DEBUG_TAG, format, ##__VA_ARGS__)
-extern void TestLetterShell() ;
-extern int rpmsg_echo(int argc, char *argv[]) ;
-
-#ifdef CONFIG_DEBUG_CODE
-
+extern int FOpenampCmdEntry(int argc, char *argv[]) ;
int main(void)
{
@@ -55,28 +51,7 @@ int main(void)
while (1); /* 正常不会执行到这里 */
FAIL_EXIT:
- printf("failed 0x%x \r\n", ret);
- return 0;
-}
-
-#else
-
-extern int rpmsg_echo_task(int argc, char *argv[]);
-
-
-int main(void)
-{
- BaseType_t ret;
- f_printk("freertos %s ,%s \r\n",__DATE__, __TIME__) ;
-
- rpmsg_echo_task(0, NULL);
- vTaskStartScheduler(); /* 启动任务,开启调度 */
- while (1); /* 正常不会执行到这里 */
-
-FAIL_EXIT:
- printf("failed 0x%x \r\n", ret);
+ printf("failed 0x%x \r\n", ret);
return 0;
}
-#endif
-
diff --git a/example/system/amp/openamp/core0/makefile b/example/system/amp/openamp/core0/makefile
index 21d5abb8606e87c734787d3ddf5a5bf0335c07c3..d74d7caeb5a02ca4f731f6da9d1d37f261047042 100644
--- a/example/system/amp/openamp/core0/makefile
+++ b/example/system/amp/openamp/core0/makefile
@@ -1,7 +1,8 @@
PROJECT_DIR = $(CURDIR)
FREERTOS_SDK_DIR = $(CURDIR)/../../../../../
-USER_CSRC := $(wildcard ./*.c)
+USER_CSRC := main.c
+USER_CSRC += $(wildcard src/*.c)
USER_INCLUDE := $(PROJECT_DIR)
diff --git a/example/system/amp/openamp/core0/sdkconfig b/example/system/amp/openamp/core0/sdkconfig
index bdd713ed32f5b1f061de3430b11b2c13986a156c..fffafbc7c62d0d32f3b3244b709c7fb29fd6a3d0 100644
--- a/example/system/amp/openamp/core0/sdkconfig
+++ b/example/system/amp/openamp/core0/sdkconfig
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core0"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# AMP Config
@@ -16,9 +10,8 @@ CONFIG_SHM_BASE_ADDR=0xc0000000
CONFIG_IPI_IRQ_NUM=9
CONFIG_IPI_IRQ_NUM_PRIORITY=16
CONFIG_SPIN_MEM=0x80000000
-CONFIG_TARGET_CPU_ID=3
+CONFIG_TARGET_CPU_MASK=3
CONFIG_IPI_CHN_BITMASK=8
-CONFIG_DEBUG_CODE=y
# end of AMP Config
# end of Project Configuration
@@ -44,13 +37,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,6 +100,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core0"
# end of Build project name
# end of Board Configuration
@@ -147,8 +135,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -176,13 +162,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -215,7 +202,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -364,7 +352,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -375,10 +362,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -398,4 +387,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core0/sdkconfig.h b/example/system/amp/openamp/core0/sdkconfig.h
index 180122522c74903be39fd5cf3c286c490c5bbc74..1056c507ceb770eef05aa8c557288b2802f6a362 100644
--- a/example/system/amp/openamp/core0/sdkconfig.h
+++ b/example/system/amp/openamp/core0/sdkconfig.h
@@ -3,20 +3,15 @@
/* Project Configuration */
-/* Freertos Configuration */
-
-#define CONFIG_TARGET_NAME "openamp_core0"
#define CONFIG_SHM_BASE_ADDR 0xc0000000
-/* end of Freertos Configuration */
/* AMP Config */
#define CONFIG_IPI_IRQ_NUM 9
#define CONFIG_IPI_IRQ_NUM_PRIORITY 16
#define CONFIG_SPIN_MEM 0x80000000
-#define CONFIG_TARGET_CPU_ID 3
+#define CONFIG_TARGET_CPU_MASK 3
#define CONFIG_IPI_CHN_BITMASK 8
-#define CONFIG_DEBUG_CODE
/* end of AMP Config */
/* end of Project Configuration */
#define CONFIG_USE_FREERTOS
@@ -38,11 +33,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -99,6 +90,7 @@
/* Build project name */
+#define CONFIG_TARGET_NAME "openamp_core0"
/* end of Build project name */
/* end of Board Configuration */
@@ -130,8 +122,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -157,12 +147,13 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
#define CONFIG_CHECK_DEPS
-#define CONFIG_OUTPUT_BINARY
+/* CONFIG_OUTPUT_BINARY is not set */
/* Optimization options */
@@ -192,7 +183,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -317,7 +309,6 @@
#define CONFIG_MEM_NORMAL
/* end of Baremetal config */
/* end of OpenAmp */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -328,9 +319,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -350,6 +343,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/system/amp/openamp/core0/src/matrix_multiplyd.c b/example/system/amp/openamp/core0/src/matrix_multiplyd.c
new file mode 100644
index 0000000000000000000000000000000000000000..11bcbede2caaa35d67311965bd7feb4d545727e9
--- /dev/null
+++ b/example/system/amp/openamp/core0/src/matrix_multiplyd.c
@@ -0,0 +1,145 @@
+/*
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+/* This is a sample demonstration application that showcases usage of remoteproc
+and rpmsg APIs on the remote core. This application is meant to run on the remote CPU
+running baremetal code. This applicationr receives two matrices from the master,
+multiplies them and returns the result to the master core. */
+
+#include
+#include
+#include
+#include
+#include "rpmsg_service.h"
+#include "platform_info.h"
+#include "fdebug.h"
+
+#define MAT_MULT_SLAVE_DEBUG_TAG " SLAVE_03"
+#define MAT_MULT_SLAVE_DEBUG_I(format, ...) FT_DEBUG_PRINT_I( MAT_MULT_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
+#define MAT_MULT_SLAVE_DEBUG_W(format, ...) FT_DEBUG_PRINT_W( MAT_MULT_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
+#define MAT_MULT_SLAVE_DEBUG_E(format, ...) FT_DEBUG_PRINT_E( MAT_MULT_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
+
+#define MAX_SIZE 6
+#define NUM_MATRIX 2
+
+#define SHUTDOWN_MSG 0xEF56A55A
+
+typedef struct _matrix {
+ unsigned int size;
+ unsigned int elements[MAX_SIZE][MAX_SIZE];
+} matrix;
+
+/* Local variables */
+static struct rpmsg_endpoint lept;
+static int shutdown_req = 0;
+
+/*-----------------------------------------------------------------------------*
+ * Calculate the Matrix
+ *-----------------------------------------------------------------------------*/
+static void Matrix_Multiply(const matrix *m, const matrix *n, matrix *r)
+{
+ unsigned int i, j, k;
+
+ memset(r, 0x0, sizeof(matrix));
+ r->size = m->size;
+
+ for (i = 0; i < m->size; ++i) {
+ for (j = 0; j < n->size; ++j) {
+ for (k = 0; k < r->size; ++k) {
+ r->elements[i][j] +=
+ m->elements[i][k] * n->elements[k][j];
+ }
+ }
+ }
+}
+
+/*-----------------------------------------------------------------------------*
+ * RPMSG callbacks setup by remoteproc_resource_init()
+ *-----------------------------------------------------------------------------*/
+static int rpmsg_endpoint_cb(struct rpmsg_endpoint *ept, void *data, size_t len,
+ uint32_t src, void *priv)
+{
+ matrix matrix_array[NUM_MATRIX];
+ matrix matrix_result;
+
+ (void)priv;
+ (void)src;
+
+ if ((*(unsigned int *)data) == SHUTDOWN_MSG) {
+ MAT_MULT_SLAVE_DEBUG_I("shutdown message is received.\r\n");
+ shutdown_req = 1;
+ return RPMSG_SUCCESS;
+ }
+
+ memcpy(matrix_array, data, len);
+ /* Process received data and multiple matrices. */
+ Matrix_Multiply(&matrix_array[0], &matrix_array[1], &matrix_result);
+
+ /* Send the result of matrix multiplication back to master. */
+ if (rpmsg_send(ept, &matrix_result, sizeof(matrix)) < 0) {
+ MAT_MULT_SLAVE_DEBUG_E("rpmsg_send failed\r\n");
+ }
+ return RPMSG_SUCCESS;
+}
+
+static void rpmsg_service_unbind(struct rpmsg_endpoint *ept)
+{
+ (void)ept;
+ MAT_MULT_SLAVE_DEBUG_E("Endpoint is destroyed\r\n");
+ shutdown_req = 1;
+}
+
+/*-----------------------------------------------------------------------------*
+ * Application
+ *-----------------------------------------------------------------------------*/
+static int app(struct rpmsg_device *rdev, void *priv)
+{
+ int ret;
+ shutdown_req = 0;
+
+ ret = rpmsg_create_ept(&lept, rdev, RPMSG_SERVICE_NAME,
+ RPMSG_ADDR_ANY, RPMSG_ADDR_ANY,
+ rpmsg_endpoint_cb,
+ rpmsg_service_unbind);
+ if (ret) {
+ MAT_MULT_SLAVE_DEBUG_E("Failed to create endpoint.\r\n");
+ return -1;
+ }
+
+ MAT_MULT_SLAVE_DEBUG_I("Waiting for events...\r\n");
+ while(1) {
+ platform_poll(priv);
+ /* we got a shutdown request, exit */
+ if (shutdown_req) {
+ break;
+ }
+ }
+ rpmsg_destroy_ept(&lept);
+
+ return 0;
+}
+
+/*-----------------------------------------------------------------------------*
+ * Application entry point
+ *-----------------------------------------------------------------------------*/
+int matrix_multiplyd(struct rpmsg_device *rdev, void *priv)
+{
+ MAT_MULT_SLAVE_DEBUG_I("Starting application...\r\n");
+
+ metal_assert(rdev);
+ metal_assert(priv);
+ int ret;
+
+ MAT_MULT_SLAVE_DEBUG_I("Starting matrix_multiplyd application...\r\n");
+ ret = app(rdev, priv);
+ if (ret != 0)
+ {
+ MAT_MULT_SLAVE_DEBUG_E("Matrix_multiplyd application error,code:0x%x",ret);
+ return ret;
+ }
+
+ MAT_MULT_SLAVE_DEBUG_I("Stopping matrix_multiplyd application...\r\n");
+
+ return ret;
+}
diff --git a/example/system/amp/openamp/core0/src/rpmsg-demo-manager_cmd.c b/example/system/amp/openamp/core0/src/rpmsg-demo-manager_cmd.c
new file mode 100644
index 0000000000000000000000000000000000000000..eb90080dbd47a9c11611cc43e0b3255233afeabb
--- /dev/null
+++ b/example/system/amp/openamp/core0/src/rpmsg-demo-manager_cmd.c
@@ -0,0 +1,453 @@
+/*
+ * @Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * @FilePath: rpmsg-demo-manager_cmd.c
+ * @Date: 2023-04-23 16:02:34
+ * @LastEditTime: 2023-04-23 16:02:35
+ * @Description: This file is for manager rpmsg demos
+ *
+ * @Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 liushengming 2023/04/23 first release
+ * 1.1 liushengming 2023/05/31 add loadelf
+ */
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include "strto.h"
+#include "shell.h"
+#include "platform_info.h"
+#include "rpmsg_service.h"
+#include
+#include "rsc_table.h"
+#include "fdebug.h"
+#include "fkernel.h"
+#include "felf.h"
+#include "sdkconfig.h"
+
+#include "FreeRTOS.h"
+#include "task.h"
+#include "finterrupt.h"
+#include "fpsci.h"
+
+/************************** Constant Definitions *****************************/
+
+/***************** Macros (Inline Functions) Definitions *********************/
+#define DEMO_MANG_MASTER_DEBUG_TAG " DEMO_MANG_MASTER"
+#define DEMO_MANG_MASTER_DEBUG_I(format, ...) FT_DEBUG_PRINT_I( DEMO_MANG_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
+#define DEMO_MANG_MASTER_DEBUG_W(format, ...) FT_DEBUG_PRINT_W( DEMO_MANG_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
+#define DEMO_MANG_MASTER_DEBUG_E(format, ...) FT_DEBUG_PRINT_E( DEMO_MANG_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
+
+/**************************** Type Definitions *******************************/
+
+#define MANAGE_READ 1
+#define MANAGE_WAIT 0
+
+#define DEMO_MANAGER_ADDR (RPMSG_RESERVED_ADDRESSES - 1)
+
+#define RPMSG_PING_DEMO 0x1
+#define RPMSG_SAM_PING_DEMO 0X2
+#define RPMSG_MAT_MULT_DEMO 0X3
+#define RPMSG_NO_COPY_DEMO 0X4
+#define RPMSG_DEMO_MAX 0x5
+
+#define REMOTEPROC_MASK BIT(CONFIG_TARGET_CPU_MASK)
+#define ELF_LOAD_ADDR 0xf1000000U
+/************************** Variable Definitions *****************************/
+/* Globals */
+
+static struct rpmsg_endpoint lept;
+static struct rpmsg_device *rpdev = NULL;
+
+static int volatile cmd_ok = MANAGE_WAIT;
+static u32 demo_flag = RPMSG_PING_DEMO;
+static void *platform = NULL;
+static u32 elf_boot_flag = 0;
+
+extern struct image_store_ops mem_image_store_ops;
+struct mem_file {
+ const void *base;
+};
+
+static struct mem_file image = {
+ .base = (void *)ELF_LOAD_ADDR,
+};
+
+/************************** Function Prototypes ******************************/
+extern int rpmsg_echo(struct rpmsg_device *rdev, void *priv);
+extern int rpmsg_sample_echo(struct rpmsg_device *rdev, void *priv) ;
+extern int matrix_multiplyd(struct rpmsg_device *rdev, void *priv) ;
+extern int rpmsg_nocopy_echo(struct rpmsg_device *rdev, void *priv) ;
+static int FOpenampClose(void *platform);
+
+static void FOpenampCmdUsage()
+{
+ printf("Usage:\r\n");
+ printf("openamp auto \r\n");
+ printf("-- Auto running.\r\n");
+ printf("-- [1] This application echoes back data that was sent to it by the master core.\r\n");
+ printf("-- [2] This application simulate sample rpmsg driver. For this it echo 100 time message sent by the rpmsg sample client available in distribution.\r\n");
+ printf("-- [3] This application receives two matrices from the master, multiplies them and returns the result to the master core.\r\n");
+ printf("-- [4] This application echoes back data that was sent to it by the master core.\r\n");
+}
+
+/*-----------------------------------------------------------------------------*
+ * Image Function
+ *-----------------------------------------------------------------------------*/
+static int FLoadelfRemoteproc(struct image_store_ops *store_ops,void *platform)
+{
+ int ret = 0;
+ struct remoteproc *rproc = platform;
+ struct remoteproc_priv *prproc = rproc->priv;
+
+ prproc->cpu_mask = REMOTEPROC_MASK;
+ if (rproc == NULL)
+ return -1;
+ /* Configure remoteproc to get ready to load executable */
+ remoteproc_config(rproc, NULL);
+
+ /* Load remoteproc executable */
+ DEMO_MANG_MASTER_DEBUG_I("Start to load executable with remoteproc_load(0x%x) \r\n",(unsigned long)image.base);
+
+ rproc->bootaddr = ElfLoadElfImagePhdr((unsigned long)image.base);
+ if (!rproc->bootaddr)
+ {
+ rproc->state = RPROC_READY;
+ }
+ /* Start the processor */
+ ret = remoteproc_start(rproc);
+ if (ret)
+ {
+ remoteproc_shutdown(rproc);
+ DEMO_MANG_MASTER_DEBUG_E("failed to start processor\r\n");
+ return ret;
+ }
+ DEMO_MANG_MASTER_DEBUG_I("successfully started the processor\r\n");
+
+ return ret;
+}
+
+/*-----------------------------------------------------------------------------*
+ * RPMSG endpoint callbacks
+ *-----------------------------------------------------------------------------*/
+static int rpmsg_endpoint_cb(struct rpmsg_endpoint *ept, void *data, size_t len,
+ uint32_t src, void *priv)
+{
+ u32 i = *(u32 *)data;
+
+ (void)ept;
+ (void)src;
+ (void)priv;
+ DEMO_MANG_MASTER_DEBUG_E("src:0x%x",src);
+ /* 通过'src'可以筛选自己想要的数据来源 */
+
+ if (i != demo_flag)
+ {
+ DEMO_MANG_MASTER_DEBUG_I("Data corruption at index %d.\r\n", i);
+ DEMO_MANG_MASTER_DEBUG_I("Want data is %d.\r\n", demo_flag);
+ return RPMSG_ERROR_BASE;
+ }
+ cmd_ok = MANAGE_READ;
+ return RPMSG_SUCCESS;
+}
+
+static void rpmsg_service_unbind(struct rpmsg_endpoint *ept)
+{
+ (void)ept;
+ rpmsg_destroy_ept(&lept);
+ DEMO_MANG_MASTER_DEBUG_E("Echo test: service is destroyed.\r\n");
+}
+
+static void rpmsg_name_service_bind_cb(struct rpmsg_device *rdev,
+ const char *name, uint32_t dest)
+{
+ DEMO_MANG_MASTER_DEBUG_I("New endpoint notification is received.\r\n");
+ if (strcmp(name, DEMO_SERVICE_NAME))
+ {
+ DEMO_MANG_MASTER_DEBUG_E("Unexpected name service %s.\r\n", name);
+ }
+ else
+ (void)rpmsg_create_ept(&lept, rdev, DEMO_SERVICE_NAME,
+ DEMO_MANAGER_ADDR, dest,
+ rpmsg_endpoint_cb,
+ rpmsg_service_unbind);
+}
+
+/*-----------------------------------------------------------------------------*
+ * Application
+ *-----------------------------------------------------------------------------*/
+static int FManageEptCreat(struct rpmsg_device *rdev, void *priv)
+{
+ int ret = 0;
+
+ /* Create RPMsg endpoint */
+ ret = rpmsg_create_ept(&lept, rdev, DEMO_SERVICE_NAME,
+ DEMO_MANAGER_ADDR, RPMSG_ADDR_ANY,
+ rpmsg_endpoint_cb, rpmsg_service_unbind);
+ if (ret)
+ {
+ DEMO_MANG_MASTER_DEBUG_E("Failed to create endpoint. %d \r\n", ret);
+ return -1;
+ }
+ while (!is_rpmsg_ept_ready(&lept))
+ {
+ DEMO_MANG_MASTER_DEBUG_I("start to wait platform_poll \r\n");
+ platform_poll(priv);
+ }
+ DEMO_MANG_MASTER_DEBUG_I("Manage rpmsg_ept_ready!!!");
+ return ret;
+}
+
+int FRunningApp(struct rpmsg_device *rdev, void *priv)
+{
+ int ret = 0;
+
+ ret = rpmsg_send(&lept, &demo_flag, sizeof(u32));
+ if (ret < 0)
+ {
+ DEMO_MANG_MASTER_DEBUG_E("Failed to send data,ret:%d...\r\n",ret);
+ return ret;
+ }
+ cmd_ok = MANAGE_WAIT;
+ do
+ {
+ platform_poll(priv);
+ }
+ while ( cmd_ok == MANAGE_WAIT );
+
+ if (demo_flag != 0 && cmd_ok == MANAGE_READ)
+ {
+ if (demo_flag == RPMSG_PING_DEMO)
+ {
+ DEMO_MANG_MASTER_DEBUG_I("*********************************************......\r\n") ;
+ DEMO_MANG_MASTER_DEBUG_I("***********Demo rpmsg_echo running***********......\r\n") ;
+ DEMO_MANG_MASTER_DEBUG_I("*********************************************......\r\n") ;
+ ret = rpmsg_echo(rdev, priv);
+ if (ret != 0)
+ {
+ DEMO_MANG_MASTER_DEBUG_E("rpmsg_echo running error,ecode:%d.",ret);
+ return ret;
+ }
+ }
+
+ if (demo_flag == RPMSG_SAM_PING_DEMO)
+ {
+ printf("\r\n\r\n");
+ DEMO_MANG_MASTER_DEBUG_I("*********************************************......\r\n");
+ DEMO_MANG_MASTER_DEBUG_I("*******Demo rpmsg_sample_echo running********......\r\n") ;
+ DEMO_MANG_MASTER_DEBUG_I("*********************************************......\r\n") ;
+ ret = rpmsg_sample_echo(rdev, priv);
+ if (ret != 0)
+ {
+ DEMO_MANG_MASTER_DEBUG_E("rpmsg_sample_echo running error,ecode:%d.",ret);
+ return ret;
+ }
+ }
+
+ if (demo_flag == RPMSG_MAT_MULT_DEMO)
+ {
+ printf("\r\n\r\n");
+ DEMO_MANG_MASTER_DEBUG_I("*********************************************......\r\n") ;
+ DEMO_MANG_MASTER_DEBUG_I("*******Demo matrix_multiplyd running********......\r\n") ;
+ DEMO_MANG_MASTER_DEBUG_I("*********************************************......\r\n") ;
+ ret = matrix_multiplyd(rdev, priv);
+ if (ret != 0)
+ {
+ DEMO_MANG_MASTER_DEBUG_E("matrix_multiplyd running error,ecode:%d.",ret);
+ return ret;
+ }
+ }
+
+ if (demo_flag == RPMSG_NO_COPY_DEMO)
+ {
+ printf("\r\n\r\n");
+ DEMO_MANG_MASTER_DEBUG_I("*********************************************......\r\n") ;
+ DEMO_MANG_MASTER_DEBUG_I("*******Demo rpmsg_nocopy_echo running********......\r\n") ;
+ DEMO_MANG_MASTER_DEBUG_I("*********************************************......\r\n") ;
+ ret = rpmsg_nocopy_echo(rdev, priv);
+ if (ret != 0)
+ {
+ DEMO_MANG_MASTER_DEBUG_E("rpmsg_nocopy_echo running error,ecode:%d.",ret);
+ return ret;
+ }
+ }
+ cmd_ok = MANAGE_WAIT;
+ DEMO_MANG_MASTER_DEBUG_I(" Demo %d running over...",demo_flag);
+ demo_flag++;
+ return ret;
+ }
+}
+
+/*-----------------------------------------------------------------------------*
+ * Application entry point
+ *-----------------------------------------------------------------------------*/
+static int FRpmsgDemoManager(void *platform)
+{
+ int ret = 0;
+ rpdev = platform_create_rpmsg_vdev(platform, 0, VIRTIO_DEV_DRIVER, NULL, rpmsg_name_service_bind_cb);
+ if (!rpdev)
+ {
+ DEMO_MANG_MASTER_DEBUG_E("Failed to create rpmsg virtio device.\r\n");
+ ret = platform_cleanup(platform);
+ return ret;
+ }
+ else
+ {
+ ret = FManageEptCreat(rpdev, platform);
+ }
+ return ret;
+}
+
+
+
+static int FOpenampClose(void *platform)
+{
+ int ret = 0;
+ struct remoteproc *rproc = platform;
+ if (rproc == NULL)
+ return -1;
+ if (rpdev == NULL)
+ return -1;
+
+ rpmsg_destroy_ept(&lept);
+
+ platform_release_rpmsg_vdev(rpdev, platform);
+
+ ret = remoteproc_shutdown(rproc);
+ if (ret != 0)
+ {
+ DEMO_MANG_MASTER_DEBUG_E("Can't shutdown remoteproc,error code:0x%x.",ret);
+ }
+
+ ret = platform_cleanup(platform);
+ if (ret != 0)
+ {
+ DEMO_MANG_MASTER_DEBUG_E("Can't remove platform,error code:0x%x.",ret);
+ }
+
+ return ret;
+}
+
+int FOpenampExample(void)
+{
+ int ret = 0;
+
+ demo_flag = RPMSG_PING_DEMO;
+
+ if (elf_boot_flag == 0)
+ {
+ /* Initialize platform */
+ ret = platform_init(1, 0, &platform);
+ if (ret)
+ {
+ DEMO_MANG_MASTER_DEBUG_E("Failed to initialize platform.\r\n");
+ platform_cleanup(platform);
+ return -1;
+ }
+
+ ret = FLoadelfRemoteproc(&mem_image_store_ops,platform);
+ if (ret)
+ {
+ DEMO_MANG_MASTER_DEBUG_E("Failed to FLoadelfRemoteproc.\r\n");
+ platform_cleanup(platform);
+ return -1;
+ }
+
+ ret = FRpmsgDemoManager(platform);
+ if (ret)
+ {
+ return FOpenampClose(platform);
+ }
+ elf_boot_flag = 1;
+ }
+ if (elf_boot_flag == 1)
+ {
+ while (demo_flag < RPMSG_DEMO_MAX)
+ {
+ ret = FRunningApp(rpdev, platform);
+ if (ret)
+ {
+ return FOpenampClose(platform);
+ }
+ }
+ }
+ return ret;
+}
+
+/*-----------------------------------------------------------------------------*
+ * Application entry point
+ *-----------------------------------------------------------------------------*/
+void RpmsgEchoTask( void * args )
+{
+ int ret;
+
+ DEMO_MANG_MASTER_DEBUG_I("complier %s ,%s \r\n", __DATE__, __TIME__);
+ DEMO_MANG_MASTER_DEBUG_I("openamp lib version: %s (", openamp_version());
+ DEMO_MANG_MASTER_DEBUG_I("Major: %d, ", openamp_version_major());
+ DEMO_MANG_MASTER_DEBUG_I("Minor: %d, ", openamp_version_minor());
+ DEMO_MANG_MASTER_DEBUG_I("Patch: %d)\r\n", openamp_version_patch());
+
+ DEMO_MANG_MASTER_DEBUG_I("libmetal lib version: %s (", metal_ver());
+ DEMO_MANG_MASTER_DEBUG_I("Major: %d, ", metal_ver_major());
+ DEMO_MANG_MASTER_DEBUG_I("Minor: %d, ", metal_ver_minor());
+ DEMO_MANG_MASTER_DEBUG_I("Patch: %d)\r\n", metal_ver_patch());
+
+ /* Initialize platform */
+ DEMO_MANG_MASTER_DEBUG_I("start application");
+ ret = FOpenampExample();
+ if (ret)
+ {
+ DEMO_MANG_MASTER_DEBUG_E("Failed to running example.\r\n");
+ }
+ DEMO_MANG_MASTER_DEBUG_I("Stopping application...\r\n");
+ vTaskDelete(NULL);
+}
+
+
+BaseType_t FOpenampCmdEntry(int argc, char *argv[])
+{
+ BaseType_t ret = 0;
+
+ if (!strcmp(argv[1], "auto"))
+ {
+ taskENTER_CRITICAL(); /* no schedule when create task */
+
+ ret = xTaskCreate((TaskFunction_t )RpmsgEchoTask, /* 任务入口函数 */
+ (const char* )"RpmsgEchoTask",/* 任务名字 */
+ (uint16_t )(4096*2), /* 任务栈大小 */
+ (void* )NULL,/* 任务入口函数参数 */
+ (UBaseType_t )4, /* 任务的优先级 */
+ NULL); /* 任务控制块指针 */
+ taskEXIT_CRITICAL(); /* allow schedule since task created */
+
+ if(ret != pdPASS)
+ {
+ DEMO_MANG_MASTER_DEBUG_E("Failed to create a RpmsgEchoTask task ");
+ return -1;
+ }
+ }
+ else
+ {
+ FOpenampCmdUsage();
+ return -1;
+ }
+
+ return ret;
+}
+
+SHELL_EXPORT_CMD(SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), openamp_echo, FOpenampCmdEntry, test freertos openamp);
diff --git a/example/system/amp/openamp/core0/rpmsg-echo_os.c b/example/system/amp/openamp/core0/src/rpmsg-echo.c
similarity index 31%
rename from example/system/amp/openamp/core0/rpmsg-echo_os.c
rename to example/system/amp/openamp/core0/src/rpmsg-echo.c
index 8831f43ba0a9966c0ef36361f22594b8065a566a..c15fa7109943d081dd6fd542fdff39c0c785d950 100644
--- a/example/system/amp/openamp/core0/rpmsg-echo_os.c
+++ b/example/system/amp/openamp/core0/src/rpmsg-echo.c
@@ -1,71 +1,52 @@
/*
- * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
* All Rights Reserved.
- *
- * This program is OPEN SOURCE software: you can redistribute it and/or modify it
- * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
- * either version 1.0 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the Phytium Public License for more details.
- *
- *
- * FilePath: rpmsg-echo_os.c
- * Date: 2022-02-25 09:12:07
- * LastEditTime: 2022-02-25 09:12:19
- * Description: This file is for a sample demonstration application that showcases usage of rpmsg.
- * This application is meant to run on the remote CPU running baremetal code.
- * This application echoes back data that was sent to it by the master core.
- *
- * Modify History:
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: rpmsg-echo.c
+ * Date: 2022-03-08 22:00:15
+ * LastEditTime: 2022-03-09 10:01:19
+ * Description: This is a sample demonstration application that showcases usage of rpmsg
+ * This application is meant to run on the remote CPU running baremetal code.
+ * This application echoes back data that was sent to it by the master core.
+ *
+ * Modify History:
* Ver Who Date Changes
* ----- ------ -------- --------------------------------------
- * 1.0 huanghe 2022/03/25 first commit
+ * 1.0 huanghe 2022/06/20 first release
*/
-
/***************************** Include Files *********************************/
#include
#include
-#include
#include
-#include
#include "platform_info.h"
-#include "rpmsg-echo.h"
+#include "rpmsg_service.h"
#include
#include "rsc_table.h"
-#include "FreeRTOS.h"
-#include "task.h"
#include "shell.h"
-#include "finterrupt.h"
-#include "fpsci.h"
+#include "fcache.h"
#include "fdebug.h"
/************************** Constant Definitions *****************************/
-
-/**************************** Type Definitions *******************************/
-
-/************************** Variable Definitions *****************************/
-
/***************** Macros (Inline Functions) Definitions *********************/
-#define OPENAMP_SLAVE_DEBUG_TAG "OPENAMP_SLAVE"
-#define OPENAMP_SLAVE_ERROR(format, ...) FT_DEBUG_PRINT_E(OPENAMP_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
-#define OPENAMP_SLAVE_WARN(format, ...) FT_DEBUG_PRINT_W(OPENAMP_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
-#define OPENAMP_SLAVE_INFO(format, ...) FT_DEBUG_PRINT_I(OPENAMP_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
-#define OPENAMP_SLAVE_DEBUG(format, ...) FT_DEBUG_PRINT_D(OPENAMP_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
-
-#ifdef CONFIG_DEBUG_CODE
-#define OPENAMP_MASTER_ADDRESS 0xe0100000
-#endif
-
-#define SHUTDOWN_MSG 0xEF56A55A
-
-#define LPRINTF(format, ...) printf(format, ##__VA_ARGS__)
-#define LPERROR(format, ...) LPRINTF("ERROR: " format, ##__VA_ARGS__)
+#define SHUTDOWN_MSG 0xEF56A55A
+#define ECHO_DEV_SLAVE_DEBUG_TAG " SLAVE_01"
+#define ECHO_DEV_SLAVE_DEBUG_I(format, ...) FT_DEBUG_PRINT_I( ECHO_DEV_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
+#define ECHO_DEV_SLAVE_DEBUG_W(format, ...) FT_DEBUG_PRINT_W( ECHO_DEV_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
+#define ECHO_DEV_SLAVE_DEBUG_E(format, ...) FT_DEBUG_PRINT_E( ECHO_DEV_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
+/************************** Variable Definitions *****************************/
static struct rpmsg_endpoint lept;
static int shutdown_req = 0;
@@ -76,138 +57,90 @@ static int shutdown_req = 0;
*-----------------------------------------------------------------------------*/
static int rpmsg_endpoint_cb(struct rpmsg_endpoint *ept, void *data, size_t len, uint32_t src, void *priv)
{
- (void)priv;
- (void)src;
- /* On reception of a shutdown we signal the application to terminate */
- if ((*(unsigned int *)data) == SHUTDOWN_MSG) {
- LPRINTF("shutdown message is received.\r\n");
- shutdown_req = 1;
- return RPMSG_SUCCESS;
- }
-
- /* Send data back to master */
- if (rpmsg_send(ept, data, len) < 0)
- LPERROR("rpmsg_send failed\r\n");
-
- return RPMSG_SUCCESS;
+ (void)priv;
+ (void)src;
+
+ /* On reception of a shutdown we signal the application to terminate */
+ if ((*(unsigned int *)data) == SHUTDOWN_MSG)
+ {
+ ECHO_DEV_SLAVE_DEBUG_I("Shutdown message is received.\r\n");
+ shutdown_req = 1;
+ return RPMSG_SUCCESS;
+ }
+
+#ifdef CONFIG_MEM_NORMAL
+ FCacheDCacheInvalidateRange((intptr)data, len);
+#endif
+
+ /* Send data back to master */
+ if (rpmsg_send(ept, data, len) < 0)
+ {
+ ECHO_DEV_SLAVE_DEBUG_E("rpmsg_send failed.\r\n");
+ }
+
+ return RPMSG_SUCCESS;
}
static void rpmsg_service_unbind(struct rpmsg_endpoint *ept)
{
- (void)ept;
- LPRINTF("unexpected Remote endpoint destroy\r\n");
- shutdown_req = 1;
+ (void)ept;
+ ECHO_DEV_SLAVE_DEBUG_I("Unexpected remote endpoint destroy.\r\n");
+ shutdown_req = 1;
}
/*-----------------------------------------------------------------------------*
* Application
*-----------------------------------------------------------------------------*/
-int app(struct rpmsg_device *rdev, void *priv)
+static int app(struct rpmsg_device *rdev, void *priv)
{
- int ret;
-
- /* Initialize RPMSG framework */
- OPENAMP_SLAVE_INFO("step7 : user to init endpoint ");
- ret = rpmsg_create_ept(&lept, rdev, RPMSG_SERVICE_NAME, 0, RPMSG_ADDR_ANY, rpmsg_endpoint_cb, rpmsg_service_unbind);
- if (ret) {
- LPERROR("Failed to create endpoint. %d \r\n", ret);
- return -1;
- }
-
- OPENAMP_SLAVE_INFO("step8 : user to wait vq code ");
- while (1)
- {
- platform_poll(priv);
+ int ret;
+ shutdown_req = 0;
+ /* Initialize RPMSG framework */
+ ECHO_DEV_SLAVE_DEBUG_I("Try to create rpmsg endpoint.\r\n");
+
+ ret = rpmsg_create_ept(&lept, rdev, RPMSG_SERVICE_NAME, 0x4, RPMSG_ADDR_ANY, rpmsg_endpoint_cb, rpmsg_service_unbind);
+ if (ret)
+ {
+ ECHO_DEV_SLAVE_DEBUG_E("Failed to create endpoint. %d \r\n", ret);
+ return -1;
+ }
+
+ ECHO_DEV_SLAVE_DEBUG_I("Successfully created rpmsg endpoint.\r\n");
+
+ while (1)
+ {
+ platform_poll(priv);
+
/* we got a shutdown request, exit */
if (shutdown_req)
- {
- OPENAMP_SLAVE_INFO("step9 : start to exit ");
- break;
- }
- }
+ {
+ break;
+ }
+ }
- rpmsg_destroy_ept(&lept);
+ rpmsg_destroy_ept(&lept);
- return 0;
+ return 0;
}
-
/*-----------------------------------------------------------------------------*
* Application entry point
*-----------------------------------------------------------------------------*/
-int rpmsg_echo(int argc, char *argv[])
-{
- void *platform;
- struct rpmsg_device *rpdev;
- int ret;
-
- LPRINTF("openamp lib version: %s (", openamp_version());
- LPRINTF("Major: %d, ", openamp_version_major());
- LPRINTF("Minor: %d, ", openamp_version_minor());
- LPRINTF("Patch: %d)\r\n", openamp_version_patch());
-
- LPRINTF("libmetal lib version: %s (", metal_ver());
- LPRINTF("Major: %d, ", metal_ver_major());
- LPRINTF("Minor: %d, ", metal_ver_minor());
- LPRINTF("Patch: %d)\r\n", metal_ver_patch());
-
- /* Initialize platform */
- OPENAMP_SLAVE_INFO("start application");
- ret = platform_init(argc, argv, &platform);
- if (ret) {
- LPERROR("Failed to initialize platform.\r\n");
- ret = -1;
- } else {
- #ifdef CONFIG_DEBUG_CODE
- LPERROR("CONFIG_TARGET_CPU_ID is %x \r\n",CONFIG_TARGET_CPU_ID);
- FPsciCpuMaskOn(1<
+#include
+#include
+#include "platform_info.h"
+#include "rpmsg_service.h"
+#include "fdebug.h"
+
+#define NO_COPY_SLAVE_DEBUG_TAG " SLAVE_04"
+#define NO_COPY_SLAVE_DEBUG_I(format, ...) FT_DEBUG_PRINT_I( NO_COPY_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
+#define NO_COPY_SLAVE_DEBUG_W(format, ...) FT_DEBUG_PRINT_W( NO_COPY_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
+#define NO_COPY_SLAVE_DEBUG_E(format, ...) FT_DEBUG_PRINT_E( NO_COPY_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
+
+#define SHUTDOWN_MSG 0xEF56A55A
+
+static struct rpmsg_endpoint lept;
+static int shutdown_req;
+
+struct rpmsg_rcv_msg {
+ void *data;
+ size_t len;
+ struct rpmsg_endpoint *ept;
+ struct rpmsg_rcv_msg *next;
+};
+
+struct rpmsg_rcv_msg *rpmsg_list;
+
+/*-----------------------------------------------------------------------------
+ * RPMSG endpoint callbacks
+ *-----------------------------------------------------------------------------
+ */
+static int rpmsg_endpoint_cb(struct rpmsg_endpoint *ept, void *data, size_t len,
+ uint32_t src, void *priv)
+{
+ (void)src;
+ (void)priv;
+ struct rpmsg_rcv_msg *rpmsg_node, *p_msg;
+
+ /* On reception of a shutdown we signal the application to terminate */
+ if ((*(unsigned int *)data) == SHUTDOWN_MSG) {
+ NO_COPY_SLAVE_DEBUG_I("shutdown message is received.\r\n");
+ shutdown_req = 1;
+ return RPMSG_SUCCESS;
+ }
+
+ rpmsg_node = metal_allocate_memory(sizeof(*rpmsg_node));
+ if (!rpmsg_node) {
+ NO_COPY_SLAVE_DEBUG_E("rpmsg_node allocation failed\r\n");
+ return -1;
+ }
+ rpmsg_hold_rx_buffer(ept, data);
+ rpmsg_node->ept = ept;
+ rpmsg_node->data = data;
+ rpmsg_node->len = len;
+ rpmsg_node->next = NULL;
+
+ if (!rpmsg_list)
+ rpmsg_list = rpmsg_node;
+ else {
+ p_msg = rpmsg_list;
+ while (p_msg->next)
+ p_msg = p_msg->next;
+ p_msg->next = rpmsg_node;
+ }
+
+ return RPMSG_SUCCESS;
+}
+
+static void rpmsg_service_unbind(struct rpmsg_endpoint *ept)
+{
+ (void)ept;
+ NO_COPY_SLAVE_DEBUG_I("unexpected Remote endpoint destroy\r\n");
+ shutdown_req = 1;
+}
+
+/*-----------------------------------------------------------------------------
+ * Application
+ *-----------------------------------------------------------------------------
+ */
+static int app(struct rpmsg_device *rdev, void *priv)
+{
+ int ret;
+ struct rpmsg_rcv_msg *rpmsg_node;
+ shutdown_req = 0;
+ /* Initialize RPMSG framework */
+ NO_COPY_SLAVE_DEBUG_I("Try to create rpmsg endpoint.\r\n");
+
+ rpmsg_list = NULL;
+ ret = rpmsg_create_ept(&lept, rdev, RPMSG_SERVICE_NAME,
+ RPMSG_ADDR_ANY, RPMSG_ADDR_ANY,
+ rpmsg_endpoint_cb,
+ rpmsg_service_unbind);
+ if (ret) {
+ NO_COPY_SLAVE_DEBUG_E("Failed to create endpoint.\r\n");
+ return -1;
+ }
+
+ NO_COPY_SLAVE_DEBUG_I("Successfully created rpmsg endpoint.\r\n");
+ while (1) {
+ platform_poll(priv);
+ /* we got a shutdown request, exit */
+ if (shutdown_req) {
+ break;
+ }
+ while (rpmsg_list) {
+ /* Send data back to master */
+ ret = rpmsg_send(rpmsg_list->ept, rpmsg_list->data,
+ rpmsg_list->len);
+ if (ret < 0) {
+ NO_COPY_SLAVE_DEBUG_E("rpmsg_send failed\r\n");
+ return ret;
+ }
+ rpmsg_release_rx_buffer(rpmsg_list->ept,
+ rpmsg_list->data);
+ rpmsg_node = rpmsg_list;
+ rpmsg_list = rpmsg_list->next;
+ metal_free_memory(rpmsg_node);
+ }
+ }
+ rpmsg_destroy_ept(&lept);
+
+ return 0;
+}
+
+/*-----------------------------------------------------------------------------
+ * Application entry point
+ *-----------------------------------------------------------------------------
+ */
+int rpmsg_nocopy_echo(struct rpmsg_device *rdev, void *priv)
+{
+ metal_assert(rdev);
+ metal_assert(priv);
+ int ret;
+
+ NO_COPY_SLAVE_DEBUG_I("Starting rpmsg_nocopy_echo application...\r\n");
+
+ ret = app(rdev, priv);
+ if (ret != 0)
+ {
+ NO_COPY_SLAVE_DEBUG_E("Rpmsg_nocopy_echo application error,code:0x%x",ret);
+ return ret;
+ }
+
+ NO_COPY_SLAVE_DEBUG_I("Stopping rpmsg_nocopy_echo application...\r\n");
+
+ return ret;
+}
diff --git a/example/system/amp/openamp/core0/src/rpmsg-sample-echo.c b/example/system/amp/openamp/core0/src/rpmsg-sample-echo.c
new file mode 100644
index 0000000000000000000000000000000000000000..78198d399a2c2ac6fc3d7fa39966a4f4ecf28664
--- /dev/null
+++ b/example/system/amp/openamp/core0/src/rpmsg-sample-echo.c
@@ -0,0 +1,117 @@
+/*
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+/*
+ * This is a sample demonstration application that showcases usage of rpmsg
+ * This application is meant to run on the remote CPU running baremetal code.
+ * This application allows to check the compatibility with running on
+ * the master CPU. For this it echo MSG_LIMIT time message sent by the rpmsg
+ * sample client available in distribution.
+ */
+
+#include
+#include
+#include
+#include "platform_info.h"
+#include "rpmsg_service.h"
+#include "fdebug.h"
+
+#define VIRTIO_DEV_SLAVE_DEBUG_TAG " SLAVE_02"
+#define VIRTIO_DEV_SLAVE_DEBUG_I(format, ...) FT_DEBUG_PRINT_I( VIRTIO_DEV_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
+#define VIRTIO_DEV_SLAVE_DEBUG_W(format, ...) FT_DEBUG_PRINT_W( VIRTIO_DEV_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
+#define VIRTIO_DEV_SLAVE_DEBUG_E(format, ...) FT_DEBUG_PRINT_E( VIRTIO_DEV_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
+
+#define MSG_LIMIT 100
+
+static struct rpmsg_endpoint lept;
+int shutdown_req = 0;
+uint32_t count = 0;
+/*-----------------------------------------------------------------------------*
+ * RPMSG endpoint callbacks
+ *-----------------------------------------------------------------------------*/
+static int rpmsg_endpoint_cb(struct rpmsg_endpoint *ept, void *data, size_t len,
+ uint32_t src, void *priv)
+{
+ (void)priv;
+ (void)src;
+ char payload[RPMSG_BUFFER_SIZE];
+
+ /* Send data back MSG_LIMIT time to master */
+ memset(payload, 0, RPMSG_BUFFER_SIZE);
+ memcpy(payload, data, len);
+ if (++count <= MSG_LIMIT)
+ {
+ VIRTIO_DEV_SLAVE_DEBUG_I("echo message number %u: %s\r\n",(unsigned int)count, payload);
+ if (rpmsg_send(ept, (char *)data, len) < 0)
+ {
+ VIRTIO_DEV_SLAVE_DEBUG_E("rpmsg_send failed\r\n");
+ shutdown_req = 1;
+ }
+ }
+ return RPMSG_SUCCESS;
+}
+
+static void rpmsg_service_unbind(struct rpmsg_endpoint *ept)
+{
+ (void)ept;
+ VIRTIO_DEV_SLAVE_DEBUG_I("unexpected Remote endpoint destroy\r\n");
+ shutdown_req = 1;
+}
+
+/*-----------------------------------------------------------------------------*
+ * Application
+ *-----------------------------------------------------------------------------*/
+static int app(struct rpmsg_device *rdev, void *priv)
+{
+ int ret;
+ shutdown_req = 0;
+ count = 0;
+ /* Initialize RPMSG framework */
+ VIRTIO_DEV_SLAVE_DEBUG_I("Try to create rpmsg endpoint.\r\n");
+
+ ret = rpmsg_create_ept(&lept, rdev, RPMSG_SERVICE_NAME,
+ RPMSG_ADDR_ANY, RPMSG_ADDR_ANY,
+ rpmsg_endpoint_cb, rpmsg_service_unbind);
+ if (ret) {
+ VIRTIO_DEV_SLAVE_DEBUG_E("Failed to create endpoint.\r\n");
+ return -1;
+ }
+
+ VIRTIO_DEV_SLAVE_DEBUG_I("Successfully created rpmsg endpoint.\r\n");
+ while (1) {
+ platform_poll(priv);
+
+ /* we got a shutdown request, exit */
+ if (shutdown_req)
+ {
+ break;
+ }
+ }
+ rpmsg_destroy_ept(&lept);
+
+ return 0;
+}
+
+/*-----------------------------------------------------------------------------*
+ * Application entry point
+ *-----------------------------------------------------------------------------*/
+int rpmsg_sample_echo(struct rpmsg_device *rdev, void *priv)
+{
+ metal_assert(rdev);
+ metal_assert(priv);
+ int ret;
+
+ VIRTIO_DEV_SLAVE_DEBUG_I("Starting rpmsg_sample_echo application...\r\n");
+
+ ret = app(rdev, priv);
+ if (ret != 0)
+ {
+ VIRTIO_DEV_SLAVE_DEBUG_E("Rpmsg_sample_echo application error,code:0x%x",ret);
+ return ret;
+ }
+
+ VIRTIO_DEV_SLAVE_DEBUG_I("Stopping rpmsg_sample_echo application...\r\n");
+
+ return ret;
+}
diff --git a/example/system/amp/openamp/core1/Kconfig b/example/system/amp/openamp/core1/Kconfig
index bb333e5ee4c956988344788951261fab0410d942..efdac530dc86ba806c14c8baf174dc99dc75564a 100644
--- a/example/system/amp/openamp/core1/Kconfig
+++ b/example/system/amp/openamp/core1/Kconfig
@@ -4,27 +4,16 @@
#
-mainmenu "Phytium Freertos Configuration"
+mainmenu "Phytium FreeRTOS Configuration"
menu "Project Configuration"
- menu " Freertos Configuration"
- config TARGET_NAME
- string "Build Target Name"
- default "openamp_core1"
- help
- Build Target name for the demo
-
- config SHM_BASE_ADDR
- hex "Share memory address set"
- default 0xc0000000
-
- endmenu
-
+ config SHM_BASE_ADDR
+ hex "Share memory address set"
+ default 0xc0000000
menu "Amp Config"
-
config IPI_IRQ_NUM
int "Communication interruption number between multiple cores"
default 0
diff --git a/example/system/amp/openamp/core1/configs/d2000_aarch32_test_openamp_core1.config b/example/system/amp/openamp/core1/configs/d2000_aarch32_test_openamp_core1.config
index c00f809a46d05f459c8f87e66352e0ae66bdc9ee..36f2ddad4b0db0006d7e3761d2eba75461b74152 100644
--- a/example/system/amp/openamp/core1/configs/d2000_aarch32_test_openamp_core1.config
+++ b/example/system/amp/openamp/core1/configs/d2000_aarch32_test_openamp_core1.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core1"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# Amp Config
@@ -46,13 +40,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -98,6 +94,7 @@ CONFIG_D2000_TEST_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core1"
# end of Build project name
# end of Board Configuration
@@ -132,8 +129,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,13 +156,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -200,7 +196,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -343,7 +340,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -354,10 +350,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -377,4 +375,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core1/configs/d2000_aarch64_test_openamp_core1.config b/example/system/amp/openamp/core1/configs/d2000_aarch64_test_openamp_core1.config
index e70b0bb32bdf4ed45a5962a4f2d99cd58704a40c..0f0c41753fdcfb12c2eca105c3aeb30d276cb95d 100644
--- a/example/system/amp/openamp/core1/configs/d2000_aarch64_test_openamp_core1.config
+++ b/example/system/amp/openamp/core1/configs/d2000_aarch64_test_openamp_core1.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core1"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# Amp Config
@@ -42,13 +36,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -100,6 +88,7 @@ CONFIG_D2000_TEST_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core1"
# end of Build project name
# end of Board Configuration
@@ -134,8 +123,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -163,13 +150,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -202,7 +190,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -341,7 +330,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -352,10 +340,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -375,4 +365,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core1/configs/e2000d_aarch32_demo_openamp_core1.config b/example/system/amp/openamp/core1/configs/e2000d_aarch32_demo_openamp_core1.config
index 4be542ae644eab04a1790d46610a122b7650366c..324687be658045e53055a574199c650b542e9401 100644
--- a/example/system/amp/openamp/core1/configs/e2000d_aarch32_demo_openamp_core1.config
+++ b/example/system/amp/openamp/core1/configs/e2000d_aarch32_demo_openamp_core1.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core1"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# Amp Config
@@ -46,13 +40,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -111,6 +107,7 @@ CONFIG_BOARD_NAME="demo"
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core1"
# end of Build project name
# end of Board Configuration
@@ -145,8 +142,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -174,13 +169,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -213,7 +209,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -356,7 +353,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -367,10 +363,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -390,4 +388,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core1/configs/e2000d_aarch64_demo_openamp_core1.config b/example/system/amp/openamp/core1/configs/e2000d_aarch64_demo_openamp_core1.config
index 4d22baffb09eafb6ae08793cc2207680ff3d53c1..39b39fcb3332654ae50a5b265d34fdb6e315973f 100644
--- a/example/system/amp/openamp/core1/configs/e2000d_aarch64_demo_openamp_core1.config
+++ b/example/system/amp/openamp/core1/configs/e2000d_aarch64_demo_openamp_core1.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core1"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# Amp Config
@@ -42,13 +36,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -113,6 +101,7 @@ CONFIG_BOARD_NAME="demo"
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core1"
# end of Build project name
# end of Board Configuration
@@ -147,8 +136,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -176,13 +163,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -215,7 +203,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -354,7 +343,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -365,10 +353,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -388,4 +378,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core1/configs/e2000q_aarch32_demo_openamp_core1.config b/example/system/amp/openamp/core1/configs/e2000q_aarch32_demo_openamp_core1.config
index bd889f7129af5200cfa0c74a4c04c231f4ec3007..e5ef0e6bd4d2c41a2730be22e9750e514edfb17c 100644
--- a/example/system/amp/openamp/core1/configs/e2000q_aarch32_demo_openamp_core1.config
+++ b/example/system/amp/openamp/core1/configs/e2000q_aarch32_demo_openamp_core1.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core1"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# Amp Config
@@ -46,13 +40,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -110,6 +106,7 @@ CONFIG_E2000Q_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core1"
# end of Build project name
# end of Board Configuration
@@ -144,8 +141,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -173,13 +168,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -212,7 +208,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -355,7 +352,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -366,10 +362,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -389,4 +387,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core1/configs/e2000q_aarch64_demo_openamp_core1.config b/example/system/amp/openamp/core1/configs/e2000q_aarch64_demo_openamp_core1.config
index e93f42411fe94621f396ffbc71060d613e7fecae..27e91770686d5ccdb74fd5512a1bf1fa3bdfb9af 100644
--- a/example/system/amp/openamp/core1/configs/e2000q_aarch64_demo_openamp_core1.config
+++ b/example/system/amp/openamp/core1/configs/e2000q_aarch64_demo_openamp_core1.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core1"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# Amp Config
@@ -42,13 +36,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -112,6 +100,7 @@ CONFIG_E2000Q_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core1"
# end of Build project name
# end of Board Configuration
@@ -146,8 +135,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -175,13 +162,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -214,7 +202,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -353,7 +342,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -364,10 +352,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -387,4 +377,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core1/configs/ft2004_aarch32_dsk_openamp_core1.config b/example/system/amp/openamp/core1/configs/ft2004_aarch32_dsk_openamp_core1.config
index 7b550e9024404a7ee7f06ea8d3d3d3a1988be874..d2193c11801a49cf70586b633d2cccea8c26744e 100644
--- a/example/system/amp/openamp/core1/configs/ft2004_aarch32_dsk_openamp_core1.config
+++ b/example/system/amp/openamp/core1/configs/ft2004_aarch32_dsk_openamp_core1.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core1"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# Amp Config
@@ -46,13 +40,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -98,6 +94,7 @@ CONFIG_FT2004_DSK_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core1"
# end of Build project name
# end of Board Configuration
@@ -132,8 +129,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,13 +156,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -200,7 +196,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -343,7 +340,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -354,10 +350,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -377,4 +375,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core1/configs/ft2004_aarch64_dsk_openamp_core1.config b/example/system/amp/openamp/core1/configs/ft2004_aarch64_dsk_openamp_core1.config
index 31d144807991ed41e522dc9a2117cc50e5650166..d375f48e9a976990b1d0401ff2ac600e4280477b 100644
--- a/example/system/amp/openamp/core1/configs/ft2004_aarch64_dsk_openamp_core1.config
+++ b/example/system/amp/openamp/core1/configs/ft2004_aarch64_dsk_openamp_core1.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core1"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# Amp Config
@@ -42,13 +36,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -100,6 +88,7 @@ CONFIG_FT2004_DSK_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core1"
# end of Build project name
# end of Board Configuration
@@ -134,8 +123,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -163,13 +150,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -202,7 +190,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -341,7 +330,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -352,10 +340,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -375,4 +365,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core1/configs/phytiumpi_aarch32_firefly_openamp_core1.config b/example/system/amp/openamp/core1/configs/phytiumpi_aarch32_firefly_openamp_core1.config
index 28b55ab372acb88776a157a9eb80445889d82910..a0083b5f0219ad0aba832b62027f64f3c5e4d126 100644
--- a/example/system/amp/openamp/core1/configs/phytiumpi_aarch32_firefly_openamp_core1.config
+++ b/example/system/amp/openamp/core1/configs/phytiumpi_aarch32_firefly_openamp_core1.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core1"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# Amp Config
@@ -46,13 +40,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -109,6 +105,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core1"
# end of Build project name
# end of Board Configuration
@@ -143,8 +140,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -172,13 +167,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -211,7 +207,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -354,7 +351,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -365,10 +361,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -388,4 +386,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core1/configs/phytiumpi_aarch64_firefly_openamp_core1.config b/example/system/amp/openamp/core1/configs/phytiumpi_aarch64_firefly_openamp_core1.config
index 27d1be17f0702c8243c96ea1e38dee411f1a2e60..67fcf57f2a50db11910b9032067bc57669842f48 100644
--- a/example/system/amp/openamp/core1/configs/phytiumpi_aarch64_firefly_openamp_core1.config
+++ b/example/system/amp/openamp/core1/configs/phytiumpi_aarch64_firefly_openamp_core1.config
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core1"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# Amp Config
@@ -42,13 +36,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -111,6 +99,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core1"
# end of Build project name
# end of Board Configuration
@@ -145,8 +134,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -174,13 +161,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -213,7 +201,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -352,7 +341,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -363,10 +351,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -386,4 +376,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core1/main.c b/example/system/amp/openamp/core1/main.c
index fa9c69e9277f5923b10fc4125af3f1193f18a382..162396cae647b26d429c0d90ee9ba8b4f61385e4 100644
--- a/example/system/amp/openamp/core1/main.c
+++ b/example/system/amp/openamp/core1/main.c
@@ -36,14 +36,15 @@
#define OPENAMP_MAIN_DEBUG_W(format, ...) FT_DEBUG_PRINT_W(OPENAMP_MAIN_DEBUG_TAG, format, ##__VA_ARGS__)
#define OPENAMP_MAIN_DEBUG_E(format, ...) FT_DEBUG_PRINT_E(OPENAMP_MAIN_DEBUG_TAG, format, ##__VA_ARGS__)
-extern void TestLetterShell() ;
-extern int rpmsg_ping_task(void);
-
+extern int rpmsg_listening_func(void);
int main(void)
{
BaseType_t ret;
- rpmsg_ping_task();
+ ret = rpmsg_listening_func();
+ if(ret != pdPASS)
+ goto FAIL_EXIT;
+ OPENAMP_MAIN_DEBUG_I("Creat task OK!");
vTaskStartScheduler(); /* 启动任务,开启调度 */
while (1); /* 正常不会执行到这里 */
diff --git a/example/system/amp/openamp/core1/makefile b/example/system/amp/openamp/core1/makefile
index 1cbd813d47cfa9e205eea8ade6dfb1e84e6a0f16..b0bd8cb57ee72acb243de453d8687fe77019f7a0 100644
--- a/example/system/amp/openamp/core1/makefile
+++ b/example/system/amp/openamp/core1/makefile
@@ -1,7 +1,8 @@
PROJECT_DIR = $(CURDIR)
FREERTOS_SDK_DIR = $(CURDIR)/../../../../../
-USER_CSRC := $(wildcard ./*.c)
+USER_CSRC := main.c
+USER_CSRC += $(wildcard src/*.c)
USER_INCLUDE := $(PROJECT_DIR)
diff --git a/example/system/amp/openamp/core1/rpmsg-ping_os.c b/example/system/amp/openamp/core1/rpmsg-ping_os.c
deleted file mode 100644
index 48cc643ebeeacf2a00787ecdf33700534745c7c9..0000000000000000000000000000000000000000
--- a/example/system/amp/openamp/core1/rpmsg-ping_os.c
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * Copyright : (C) 2022 Phytium Information Technology, Inc.
- * All Rights Reserved.
- *
- * This program is OPEN SOURCE software: you can redistribute it and/or modify it
- * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
- * either version 1.0 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the Phytium Public License for more details.
- *
- *
- * FilePath: rpmsg-ping_os.c
- * Date: 2022-02-25 09:12:07
- * LastEditTime: 2022-02-25 09:12:19
- * Description: This file is for a sample demonstration application that showcases usage of rpmsg.
- * This application is meant to run on the remote CPU running baremetal code.
- * This application echoes back data that was sent to it by the master core.
- *
- * Modify History:
- * Ver Who Date Changes
- * ----- ------ -------- --------------------------------------
- * 1.0 huanghe 2022/03/25 first commit
- */
-
-/* This is a sample demonstration application that showcases usage of rpmsg
-This application is meant to run on the remote CPU running baremetal code.
-This application echoes back data that was sent to it by the master core. */
-
-/***************************** Include Files *********************************/
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include "ftypes.h"
-#include "platform_info.h"
-#include "rpmsg-echo.h"
-#include "FreeRTOS.h"
-#include "task.h"
-#include "fdebug.h"
-
-
-/***************** Macros (Inline Functions) Definitions *********************/
-
-#define LPRINTF(format, ...) printf(format, ##__VA_ARGS__)
-#define LPERROR(format, ...) LPRINTF("ERROR: " format, ##__VA_ARGS__)
-
-#define OPENAMP_MASTER_DEBUG_TAG "OPENAMP_MASTER"
-#define OPENAMP_MASTER_ERROR(format, ...) FT_DEBUG_PRINT_E(OPENAMP_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
-#define OPENAMP_MASTER_WARN(format, ...) FT_DEBUG_PRINT_W(OPENAMP_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
-#define OPENAMP_MASTER_INFO(format, ...) FT_DEBUG_PRINT_I(OPENAMP_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
-#define OPENAMP_MASTER_DEBUG(format, ...) FT_DEBUG_PRINT_D(OPENAMP_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
-
-
-/**************************** Type Definitions *******************************/
-
-struct _payload {
- unsigned long num;
- unsigned long size;
- unsigned char data[];
-};
-
-static int err_cnt;
-static char flg_cnt;
-
-#define PAYLOAD_MIN_SIZE 1
-
-
-/************************** Variable Definitions *****************************/
-
-/* Globals */
-static struct rpmsg_endpoint lept;
-static struct _payload *i_payload;
-static int rnum = 0;
-static int err_cnt = 0;
-static int ept_deleted = 0;
-
-/************************** Function Prototypes ******************************/
-
-/*-----------------------------------------------------------------------------*
- * RPMSG endpoint callbacks
- *-----------------------------------------------------------------------------*/
-static int rpmsg_endpoint_cb(struct rpmsg_endpoint *ept, void *data, size_t len,
- uint32_t src, void *priv)
-{
- int i;
- struct _payload *r_payload = (struct _payload *)data;
-
- (void)ept;
- (void)src;
- (void)priv;
-
- if (r_payload->size == 0) {
- LPERROR(" Invalid size of package is received.\r\n");
- err_cnt++;
- return RPMSG_SUCCESS;
- }
- /* Validate data buffer integrity. */
- for (i = 0; i < (int)r_payload->size; i++) {
- if (r_payload->data[i] != flg_cnt) {
- LPRINTF("Data corruption at index %d\r\n", i);
- LPRINTF("Want data is %d\r\n", flg_cnt);
- LPRINTF("Get data is %d\r\n", r_payload->data[i]);
- err_cnt++;
- break;
- }
- }
- rnum = r_payload->num + 1;
- return RPMSG_SUCCESS;
-}
-
-static void rpmsg_service_unbind(struct rpmsg_endpoint *ept)
-{
- (void)ept;
- rpmsg_destroy_ept(&lept);
- LPRINTF("echo test: service is destroyed\r\n");
- ept_deleted = 1;
-}
-
-static void rpmsg_name_service_bind_cb(struct rpmsg_device *rdev,
- const char *name, uint32_t dest)
-{
- LPRINTF("new endpoint notification is received.\r\n");
- if (strcmp(name, RPMSG_SERVICE_NAME))
- LPERROR("Unexpected name service %s.\r\n", name);
- else
- (void)rpmsg_create_ept(&lept, rdev, RPMSG_SERVICE_NAME,
- RPMSG_ADDR_ANY, dest,
- rpmsg_endpoint_cb,
- rpmsg_service_unbind);
-
-}
-
-/*-----------------------------------------------------------------------------*
- * Application
- *-----------------------------------------------------------------------------*/
-int app(struct rpmsg_device *rdev, void *priv)
-{
- int ret;
- int i;
- int size, max_size, num_payloads;
- int expect_rnum = 0;
-
-
-
- max_size = rpmsg_virtio_get_buffer_size(rdev);
- if (max_size < 0) {
- LPERROR("No avaiable buffer size.\r\n");
- return -1;
- }
- max_size -= sizeof(struct _payload);
- num_payloads = max_size - PAYLOAD_MIN_SIZE + 1;
- i_payload =
- (struct _payload *)metal_allocate_memory(2 * sizeof(unsigned long) +
- max_size);
-
- if (!i_payload) {
- LPERROR("memory allocation failed.\r\n");
- return -1;
- }
-
- OPENAMP_MASTER_INFO("step7 : user to init endpoint ");
- /* Create RPMsg endpoint */
- ret = rpmsg_create_ept(&lept, rdev, RPMSG_SERVICE_NAME,
- RPMSG_ADDR_ANY, RPMSG_ADDR_ANY,
- rpmsg_endpoint_cb, rpmsg_service_unbind);
-
- if (ret) {
- LPERROR("Failed to create RPMsg endpoint.\r\n");
- metal_free_memory(i_payload);
- return ret;
- }
- OPENAMP_MASTER_INFO("step8 : user to wait vq code ");
- while (!is_rpmsg_ept_ready(&lept))
- platform_poll(priv);
-
- for (i = 0, size = PAYLOAD_MIN_SIZE; i < num_payloads; i++, size++)
- {
- i_payload->num = i;
- i_payload->size = size;
- flg_cnt++;
- /* Mark the data buffer. */
- memset(&(i_payload->data[0]), flg_cnt, size);
-
- ret = rpmsg_send(&lept, i_payload,
- (2 * sizeof(unsigned long)) + size);
-
- if (ret < 0) {
- LPERROR("Failed to send data...\r\n");
- break;
- }
-
- expect_rnum++;
- do {
- platform_poll(priv);
- } while ((rnum < expect_rnum) && !err_cnt && !ept_deleted);
-
- }
-
- LPRINTF("**********************************\r\n");
- LPRINTF(" Test Results: Error count = %d \r\n", err_cnt);
- LPRINTF("**********************************\r\n");
- OPENAMP_MASTER_INFO("step9 : start to exit ");
- /* Destroy the RPMsg endpoint */
- rpmsg_destroy_ept(&lept);
-
- metal_free_memory(i_payload);
- return 0;
-}
-
-
-static void rpmsg_ping(void *args)
-{
- void *platform;
- struct rpmsg_device *rpdev;
- int ret = 0;
- /* Initialize platform */
- OPENAMP_MASTER_INFO("start application");
- ret = platform_init(0, NULL, &platform);
- if (ret) {
- LPERROR("Failed to initialize platform.\r\n");
- }
- else
- {
- OPENAMP_MASTER_INFO("step3: start to init virtio device ");
- rpdev = platform_create_rpmsg_vdev(platform, 0,
- VIRTIO_DEV_MASTER,
- NULL,
- rpmsg_name_service_bind_cb);
- if (!rpdev) {
- LPERROR("Failed to create platform_create_rpmsg_vdev\r\n");
- }
- else
- {
- app(rpdev, platform);
- platform_release_rpmsg_vdev(rpdev, platform);
- }
- }
-
- OPENAMP_MASTER_INFO("Stopping application...\r\n");
- platform_cleanup(platform);
-
- vTaskDelete(NULL);
-}
-
-
-
-
-int rpmsg_ping_task(void)
-{
- BaseType_t ret;
-
- ret = xTaskCreate((TaskFunction_t )rpmsg_ping, /* 任务入口函数 */
- (const char* )"rpmsg_ping",/* 任务名字 */
- (uint16_t )4096, /* 任务栈大小 */
- (void* )NULL,/* 任务入口函数参数 */
- (UBaseType_t )1, /* 任务的优先级 */
- NULL); /* 任务控制块指针 */
-
- if(ret != pdPASS)
- {
- LPERROR("Failed to create a rpmsg_echo task ");
- return -1;
- }
-
- return 0;
-}
-
diff --git a/example/system/amp/openamp/core1/sdkconfig b/example/system/amp/openamp/core1/sdkconfig
index 27d1be17f0702c8243c96ea1e38dee411f1a2e60..67fcf57f2a50db11910b9032067bc57669842f48 100644
--- a/example/system/amp/openamp/core1/sdkconfig
+++ b/example/system/amp/openamp/core1/sdkconfig
@@ -2,13 +2,7 @@
#
# Project Configuration
#
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="openamp_core1"
CONFIG_SHM_BASE_ADDR=0xc0000000
-# end of Freertos Configuration
#
# Amp Config
@@ -42,13 +36,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -111,6 +99,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="openamp_core1"
# end of Build project name
# end of Board Configuration
@@ -145,8 +134,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -174,13 +161,14 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
CONFIG_CHECK_DEPS=y
-CONFIG_OUTPUT_BINARY=y
+# CONFIG_OUTPUT_BINARY is not set
#
# Optimization options
@@ -213,7 +201,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -352,7 +341,6 @@ CONFIG_MEM_NORMAL=y
# end of Baremetal config
# end of OpenAmp
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -363,10 +351,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -386,4 +376,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/amp/openamp/core1/sdkconfig.h b/example/system/amp/openamp/core1/sdkconfig.h
index af9723b056085752a63de1bcf8fa5a60387a2f45..f5225580ad42e589ccb858e69b2d26ab779ce8f8 100644
--- a/example/system/amp/openamp/core1/sdkconfig.h
+++ b/example/system/amp/openamp/core1/sdkconfig.h
@@ -3,11 +3,7 @@
/* Project Configuration */
-/* Freertos Configuration */
-
-#define CONFIG_TARGET_NAME "openamp_core1"
#define CONFIG_SHM_BASE_ADDR 0xc0000000
-/* end of Freertos Configuration */
/* Amp Config */
@@ -36,11 +32,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -97,6 +89,7 @@
/* Build project name */
+#define CONFIG_TARGET_NAME "openamp_core1"
/* end of Build project name */
/* end of Board Configuration */
@@ -128,8 +121,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -155,12 +146,13 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
#define CONFIG_CHECK_DEPS
-#define CONFIG_OUTPUT_BINARY
+/* CONFIG_OUTPUT_BINARY is not set */
/* Optimization options */
@@ -190,7 +182,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -307,7 +300,6 @@
#define CONFIG_MEM_NORMAL
/* end of Baremetal config */
/* end of OpenAmp */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -318,9 +310,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -340,6 +334,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/system/amp/openamp/core1/src/matrix_multiply.c b/example/system/amp/openamp/core1/src/matrix_multiply.c
new file mode 100644
index 0000000000000000000000000000000000000000..8eda3948f2edda8f53e972706ec1ebb57d325f18
--- /dev/null
+++ b/example/system/amp/openamp/core1/src/matrix_multiply.c
@@ -0,0 +1,250 @@
+/*
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+/* This is a sample demonstration application that showcases usage of remoteproc
+and rpmsg APIs on the remote core. This application is meant to run on the remote CPU
+running baremetal code. This application receives two matrices from the master,
+multiplies them and returns the result to the master core. */
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include "platform_info.h"
+#include "rpmsg_service.h"
+#include "fdebug.h"
+
+#define MAT_MULT_MASTER_DEBUG_TAG " MASTER_03"
+#define MAT_MULT_MASTER_DEBUG_I(format, ...) FT_DEBUG_PRINT_I( MAT_MULT_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
+#define MAT_MULT_MASTER_DEBUG_W(format, ...) FT_DEBUG_PRINT_W( MAT_MULT_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
+#define MAT_MULT_MASTER_DEBUG_E(format, ...) FT_DEBUG_PRINT_E( MAT_MULT_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
+
+#define MAX_SIZE 6
+#define NUM_MATRIX 2
+
+typedef struct _matrix {
+ unsigned int size;
+ unsigned int elements[MAX_SIZE][MAX_SIZE];
+} matrix;
+
+/* Globals */
+static struct rpmsg_endpoint lept;
+static struct _matrix i_matrix[2];
+static struct _matrix e_matrix;
+static unsigned int result_returned = 0;
+static int err_cnt = 0;
+static int ept_deleted = 0;
+
+/**
+ * _gettimeofday() is called from time() which is used by srand() to generate
+ * random number. It is defined here in case this function is not defined in
+ * library.
+ */
+int __attribute__((weak)) _gettimeofday(struct timeval *tv, void *tz)
+{
+ (void)tv;
+ (void)tz;
+ return 0;
+}
+
+static void matrix_print(struct _matrix *m)
+{
+ unsigned int i, j;
+
+ /* Generate two random matrices */
+ MAT_MULT_MASTER_DEBUG_I("Printing matrix... \r\n");
+
+ for (i = 0; i < m->size; ++i) {
+ for (j = 0; j < m->size; ++j)
+ printf(" %u ", m->elements[i][j]);
+ printf("\r\n");
+ }
+}
+
+static void generate_matrices(int num_matrices,
+ unsigned int matrix_size, void *p_data)
+{
+ unsigned int i, j, k;
+ struct _matrix *p_matrix = p_data;
+ unsigned long value;
+
+
+ for (i = 0; i < (unsigned int)num_matrices; i++) {
+ /* Initialize workload */
+ p_matrix[i].size = matrix_size;
+
+ MAT_MULT_MASTER_DEBUG_I("Input matrix %d \r\n", i);
+ for (j = 0; j < matrix_size; j++) {
+ printf("\r\n");
+ for (k = 0; k < matrix_size; k++) {
+
+ value = (rand() & 0x7F);
+ value = value % 10;
+ p_matrix[i].elements[j][k] = value;
+ printf(" %u ", p_matrix[i].elements[j][k]);
+ }
+ }
+ printf("\r\n");
+ }
+
+}
+
+static void matrix_multiply_func(const matrix * m, const matrix * n, matrix * r)
+{
+ unsigned int i, j, k;
+
+ memset(r, 0x0, sizeof(matrix));
+ r->size = m->size;
+
+ for (i = 0; i < m->size; ++i) {
+ for (j = 0; j < n->size; ++j) {
+ for (k = 0; k < r->size; ++k) {
+ r->elements[i][j] += m->elements[i][k] * n->elements[k][j];
+ }
+ }
+ }
+}
+
+/*-----------------------------------------------------------------------------*
+ * RPMSG endpoint callbacks
+ *-----------------------------------------------------------------------------*/
+static int rpmsg_endpoint_cb(struct rpmsg_endpoint *ept, void *data,
+ size_t len, uint32_t src, void *priv)
+{
+ struct _matrix *r_matrix = (struct _matrix *)data;
+ int i, j;
+
+ (void)ept;
+ (void)priv;
+ (void)src;
+ if (len != sizeof(struct _matrix)) {
+ MAT_MULT_MASTER_DEBUG_E("Received matrix is of invalid len: %d:%lu\r\n",
+ (int)sizeof(struct _matrix), (unsigned long)len);
+ err_cnt++;
+ return RPMSG_SUCCESS;
+ }
+ for (i = 0; i < MAX_SIZE; i++) {
+ for (j = 0; j < MAX_SIZE; j++) {
+ if (r_matrix->elements[i][j] !=
+ e_matrix.elements[i][j]) {
+ err_cnt++;
+ break;
+ }
+ }
+ }
+ if (err_cnt) {
+ MAT_MULT_MASTER_DEBUG_E("Result mismatched...\r\n");
+ MAT_MULT_MASTER_DEBUG_E("Expected matrix:\r\n");
+ matrix_print(&e_matrix);
+ MAT_MULT_MASTER_DEBUG_E("Actual matrix:\r\n");
+ matrix_print(r_matrix);
+ } else {
+ result_returned = 1;
+ }
+ return RPMSG_SUCCESS;
+}
+
+static void rpmsg_service_unbind(struct rpmsg_endpoint *ept)
+{
+ (void)ept;
+ rpmsg_destroy_ept(&lept);
+ MAT_MULT_MASTER_DEBUG_I("echo test: service is destroyed\r\n");
+ ept_deleted = 1;
+}
+
+static void rpmsg_name_service_bind_cb(struct rpmsg_device *rdev,
+ const char *name, uint32_t dest)
+{
+ if (strcmp(name, RPMSG_SERVICE_NAME))
+ MAT_MULT_MASTER_DEBUG_E("Unexpected name service %s.\r\n", name);
+ else
+ (void)rpmsg_create_ept(&lept, rdev, RPMSG_SERVICE_NAME,
+ RPMSG_ADDR_ANY, dest,
+ rpmsg_endpoint_cb,
+ rpmsg_service_unbind);
+
+}
+
+/*-----------------------------------------------------------------------------*
+ * Application
+ *-----------------------------------------------------------------------------*/
+static int app (struct rpmsg_device *rdev, void *priv)
+{
+ int c;
+ int ret;
+
+ ept_deleted = 0;
+
+ MAT_MULT_MASTER_DEBUG_I("Compute thread unblocked ..\r\n");
+ MAT_MULT_MASTER_DEBUG_I("It will generate two random matrices.\r\n");
+ MAT_MULT_MASTER_DEBUG_I("Send to the remote and get the computation result back.\r\n");
+ MAT_MULT_MASTER_DEBUG_I("It will then check if the result is expected.\r\n");
+
+ /* Create RPMsg endpoint */
+ ret = rpmsg_create_ept(&lept, rdev, RPMSG_SERVICE_NAME,
+ RPMSG_ADDR_ANY, RPMSG_ADDR_ANY,
+ rpmsg_endpoint_cb, rpmsg_service_unbind);
+ if (ret) {
+ MAT_MULT_MASTER_DEBUG_E("Failed to create RPMsg endpoint.\r\n");
+ return ret;
+ }
+
+ while (!is_rpmsg_ept_ready(&lept))
+ platform_poll(priv);
+
+ MAT_MULT_MASTER_DEBUG_I("RPMSG endpoint is binded with remote.\r\n");
+ err_cnt = 0;
+ srand(time(NULL));
+ for (c = 0; c < 200; c++) {
+ generate_matrices(2, MAX_SIZE, i_matrix);
+ matrix_multiply_func(&i_matrix[0], &i_matrix[1], &e_matrix);
+ result_returned = 0;
+ ret = rpmsg_send(&lept, i_matrix, sizeof(i_matrix));
+
+ if (ret < 0) {
+ MAT_MULT_MASTER_DEBUG_I("Error sending data...\r\n");
+ break;
+ }
+ MAT_MULT_MASTER_DEBUG_I("Matrix multiply: sent : %lu\r\n",
+ (unsigned long)sizeof(i_matrix));
+ do {
+ platform_poll(priv);
+ } while (!result_returned && !err_cnt && !ept_deleted);
+
+ if (err_cnt)
+ break;
+ }
+
+ MAT_MULT_MASTER_DEBUG_I("**********************************\r\n");
+ MAT_MULT_MASTER_DEBUG_I(" Test Results: Error count = %d \r\n", err_cnt);
+ MAT_MULT_MASTER_DEBUG_I("**********************************\r\n");
+
+ /* Detroy RPMsg endpoint */
+ rpmsg_destroy_ept(&lept);
+ MAT_MULT_MASTER_DEBUG_I("Quitting application .. Matrix multiplication end\r\n");
+
+ return 0;
+}
+
+int matrix_multiply(struct rpmsg_device *rdev, void *priv)
+{
+ metal_assert(rdev);
+ metal_assert(priv);
+ int ret;
+
+ MAT_MULT_MASTER_DEBUG_I("Starting matrix_multiply application...\r\n");
+ ret = app(rdev, priv);
+ if (ret != 0)
+ {
+ MAT_MULT_MASTER_DEBUG_E("Matrix_multiply application error,code:0x%x",ret);
+ return ret;
+ }
+
+ MAT_MULT_MASTER_DEBUG_I("Stopping matrix_multiply application...\r\n");
+
+ return ret;
+}
+
diff --git a/example/system/amp/openamp/core1/src/rpmsg-demo-listening.c b/example/system/amp/openamp/core1/src/rpmsg-demo-listening.c
new file mode 100644
index 0000000000000000000000000000000000000000..85c64e1719aa2ea73b463011ba722a39fc3b9560
--- /dev/null
+++ b/example/system/amp/openamp/core1/src/rpmsg-demo-listening.c
@@ -0,0 +1,258 @@
+/*
+ * @Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * @FilePath: rpmsg-demo-listening.c
+ * @Date: 2023-04-23 16:42:27
+ * @LastEditTime: 2023-04-23 16:42:27
+ * @Description: This file is for wait core0 msg
+ *
+ * @Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 liushengming 2023/04/23 first release
+ */
+
+/***************************** Include Files *********************************/
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include "platform_info.h"
+#include "rpmsg_service.h"
+#include "fcache.h"
+#include "fdebug.h"
+#include "ftypes.h"
+#include "FreeRTOS.h"
+#include "task.h"
+
+
+/************************** Constant Definitions *****************************/
+/***************** Macros (Inline Functions) Definitions *********************/
+
+#define SHUTDOWN_MSG 0xEF56A55A
+#define RECV_MSG 0xE5E5E5E5
+
+#define DEMO_LIST_SLAVE_DEBUG_TAG " DEMO_LIST_SLAVE"
+#define DEMO_LIST_SLAVE_DEBUG_I(format, ...) FT_DEBUG_PRINT_I( DEMO_LIST_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
+#define DEMO_LIST_SLAVE_DEBUG_W(format, ...) FT_DEBUG_PRINT_W( DEMO_LIST_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
+#define DEMO_LIST_SLAVE_DEBUG_E(format, ...) FT_DEBUG_PRINT_E( DEMO_LIST_SLAVE_DEBUG_TAG, format, ##__VA_ARGS__)
+
+#define DEMO_LISTENING_ADDR (RPMSG_RESERVED_ADDRESSES - 2)
+
+#define RPMSG_PING_DEMO 0x1
+#define RPMSG_SAM_PING_DEMO 0X2
+#define RPMSG_MAT_MULT_DEMO 0X3
+#define RPMSG_NO_COPY_DEMO 0X4
+
+static struct rpmsg_endpoint lept;
+static volatile u32 flag_req = 0;
+static volatile int demo_flag = 0;
+/************************** Function Prototypes ******************************/
+extern int rpmsg_ping(struct rpmsg_device *rdev, void *priv) ;
+extern int rpmsg_sample_ping(struct rpmsg_device *rdev, void *priv) ;
+extern int matrix_multiply(struct rpmsg_device *rdev, void *priv) ;
+extern int rpmsg_nocopy_ping(struct rpmsg_device *rdev, void *priv) ;
+/*-----------------------------------------------------------------------------*
+ * RPMSG endpoint callbacks
+ *-----------------------------------------------------------------------------*/
+static int rpmsg_endpoint_cb(struct rpmsg_endpoint *ept, void *data, size_t len, uint32_t src, void *priv)
+{
+ (void)priv;
+ DEMO_LIST_SLAVE_DEBUG_E("src:0x%x",src);
+ ept->dest_addr = src;
+ /* On reception of a shutdown we signal the application to terminate */
+ if ((*(unsigned int *)data) == SHUTDOWN_MSG)
+ {
+ DEMO_LIST_SLAVE_DEBUG_I("Shutdown message is received.\r\n");
+ flag_req = SHUTDOWN_MSG;
+ return RPMSG_SUCCESS;
+ }
+
+ demo_flag = (*(unsigned int *)data);
+#ifdef CONFIG_MEM_NORMAL
+ FCacheDCacheInvalidateRange((intptr)data, len);
+#endif
+ /* Send data back to master */
+ if (rpmsg_send(ept, data, len) < 0)
+ {
+ DEMO_LIST_SLAVE_DEBUG_E("rpmsg_send failed.\r\n");
+ }
+ flag_req = RECV_MSG;
+ return RPMSG_SUCCESS;
+}
+
+static void rpmsg_service_unbind(struct rpmsg_endpoint *ept)
+{
+ (void)ept;
+ rpmsg_destroy_ept(&lept);
+ DEMO_LIST_SLAVE_DEBUG_I("Unexpected remote endpoint destroy.\r\n");
+ flag_req = SHUTDOWN_MSG;
+}
+
+/*-----------------------------------------------------------------------------*
+ * Application
+ *-----------------------------------------------------------------------------*/
+static int app(struct rpmsg_device *rdev, void *priv)
+{
+ int ret;
+ /* Initialize RPMSG framework */
+ ret = rpmsg_create_ept(&lept, rdev, DEMO_SERVICE_NAME, DEMO_LISTENING_ADDR, RPMSG_ADDR_ANY, rpmsg_endpoint_cb, rpmsg_service_unbind);
+ if (ret)
+ {
+ DEMO_LIST_SLAVE_DEBUG_E("Failed to create endpoint. %d \r\n", ret);
+ return -1;
+ }
+ DEMO_LIST_SLAVE_DEBUG_I("Successfully created rpmsg endpoint.\r\n");
+ demo_flag = 0;
+ flag_req = 0;
+ while (1)
+ {
+ platform_poll(priv);
+ /* we got a shutdown request, exit */
+ if (demo_flag != 0 && flag_req == RECV_MSG)
+ {
+ if (demo_flag == RPMSG_PING_DEMO)
+ {
+ printf("\r\n\r\n");
+ DEMO_LIST_SLAVE_DEBUG_I("*********************************************......\r\n");
+ DEMO_LIST_SLAVE_DEBUG_I("***********Demo rpmsg_ping running***********......\r\n");
+ DEMO_LIST_SLAVE_DEBUG_I("*********************************************......\r\n");
+ ret = rpmsg_ping(rdev, priv);
+ if (ret != 0)
+ {
+ DEMO_LIST_SLAVE_DEBUG_E("rpmsg_echo running error,ecode:%d.", ret);
+ return 0;
+ }
+ }
+
+ if (demo_flag == RPMSG_SAM_PING_DEMO)
+ {
+ printf("\r\n\r\n");
+ DEMO_LIST_SLAVE_DEBUG_I("*********************************************......\r\n");
+ DEMO_LIST_SLAVE_DEBUG_I("*******Demo rpmsg_sample_ping running********......\r\n");
+ DEMO_LIST_SLAVE_DEBUG_I("*********************************************......\r\n");
+ ret = rpmsg_sample_ping(rdev, priv);
+ if (ret != 0)
+ {
+ DEMO_LIST_SLAVE_DEBUG_E("rpmsg_sample_ping running error,ecode:%d.", ret);
+ return 0;
+ }
+ }
+
+ if (demo_flag == RPMSG_MAT_MULT_DEMO)
+ {
+ printf("\r\n\r\n");
+ DEMO_LIST_SLAVE_DEBUG_I("*********************************************......\r\n");
+ DEMO_LIST_SLAVE_DEBUG_I("********Demo matrix_multiply running*********......\r\n");
+ DEMO_LIST_SLAVE_DEBUG_I("*********************************************......\r\n");
+ ret = matrix_multiply(rdev, priv);
+ if (ret != 0)
+ {
+ DEMO_LIST_SLAVE_DEBUG_E("matrix_multiply running error,ecode:%d.", ret);
+ return 0;
+ }
+ }
+
+ if (demo_flag == RPMSG_NO_COPY_DEMO)
+ {
+ printf("\r\n\r\n");
+ DEMO_LIST_SLAVE_DEBUG_I("*********************************************......\r\n");
+ DEMO_LIST_SLAVE_DEBUG_I("*******Demo rpmsg_nocopy_ping running********......\r\n");
+ DEMO_LIST_SLAVE_DEBUG_I("*********************************************......\r\n");
+ ret = rpmsg_nocopy_ping(rdev, priv);
+ if (ret != 0)
+ {
+ DEMO_LIST_SLAVE_DEBUG_E("rpmsg_nocopy_ping running error,ecode:%d.", ret);
+ return 0;
+ }
+ }
+ flag_req = 0;
+ demo_flag = 0;
+ DEMO_LIST_SLAVE_DEBUG_I(" Demo running over...");
+ }
+ if (flag_req == SHUTDOWN_MSG)
+ {
+ break;
+ }
+ }
+ DEMO_LIST_SLAVE_DEBUG_I("Listening demo over.");
+ return ret;
+}
+
+void rpmsg_listening_task(void *args)
+{
+ void *platform;
+ struct rpmsg_device *rpdev;
+ int ret;
+ while (!ret)
+ {
+ DEMO_LIST_SLAVE_DEBUG_I("Starting application...\r\n");
+ /* Initialize platform */
+ ret = platform_init(0, NULL, &platform);
+ if (ret)
+ {
+ DEMO_LIST_SLAVE_DEBUG_E("Failed to initialize platform.\r\n");
+ ret = -1;
+ break;
+ }
+ else
+ {
+ rpdev = platform_create_rpmsg_vdev(platform, 0, VIRTIO_DEV_DEVICE, NULL,NULL);
+ if (!rpdev)
+ {
+ DEMO_LIST_SLAVE_DEBUG_E("Failed to create rpmsg virtio device.\r\n");
+ ret = -1;
+ break;
+ }
+ else
+ {
+ ret = app(rpdev, platform);
+ if (ret != 0)
+ {
+ DEMO_LIST_SLAVE_DEBUG_E("App listening running error.");
+ ret = -1;
+ break;
+ }
+ platform_release_rpmsg_vdev(rpdev, platform);
+ }
+ }
+
+ DEMO_LIST_SLAVE_DEBUG_I("Stopping application...\r\n");
+ platform_cleanup(platform);
+ }
+ vTaskDelete(NULL);
+}
+
+int rpmsg_listening_func(void)
+{
+ BaseType_t ret;
+
+ taskENTER_CRITICAL(); /* no schedule when create task */
+ ret = xTaskCreate((TaskFunction_t )rpmsg_listening_task, /* 任务入口函数 */
+ (const char* )"rpmsg_listening_task",/* 任务名字 */
+ (uint16_t )4096*2, /* 任务栈大小 */
+ (void* )NULL,/* 任务入口函数参数 */
+ (UBaseType_t )4, /* 任务的优先级 */
+ NULL); /* 任务控制块指针 */
+ taskEXIT_CRITICAL(); /* allow schedule since task created */
+
+ if(ret != pdPASS)
+ {
+ DEMO_LIST_SLAVE_DEBUG_E("Failed to create a rpmsg_listening_task task ");
+ return -1;
+ }
+ return ret;
+}
\ No newline at end of file
diff --git a/example/system/amp/openamp/core1/src/rpmsg-nocopy-ping.c b/example/system/amp/openamp/core1/src/rpmsg-nocopy-ping.c
new file mode 100644
index 0000000000000000000000000000000000000000..e0873105faa15c55fe986f7f529768750db00752
--- /dev/null
+++ b/example/system/amp/openamp/core1/src/rpmsg-nocopy-ping.c
@@ -0,0 +1,223 @@
+/*
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2020, Xiaomi Inc. All rights reserved.
+ * Copyright (c) 2020, STMicroelectronics
+ */
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include "platform_info.h"
+#include "rpmsg_service.h"
+#include "fdebug.h"
+
+#define NO_COPY_MASTER_DEBUG_TAG " MASTER_04"
+#define NO_COPY_MASTER_DEBUG_I(format, ...) FT_DEBUG_PRINT_I( NO_COPY_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
+#define NO_COPY_MASTER_DEBUG_W(format, ...) FT_DEBUG_PRINT_W( NO_COPY_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
+#define NO_COPY_MASTER_DEBUG_E(format, ...) FT_DEBUG_PRINT_E( NO_COPY_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
+
+struct _payload {
+ unsigned long num;
+ unsigned long size;
+ unsigned char data[];
+};
+
+struct rpmsg_rcv_msg {
+ struct _payload *payload;
+ size_t len;
+ struct rpmsg_endpoint *ept;
+};
+
+static int err_cnt;
+static struct rpmsg_rcv_msg rcv_msg;
+
+#define PAYLOAD_MIN_SIZE 1
+
+/* Globals */
+static struct rpmsg_endpoint lept;
+static int rnum;
+static int err_cnt;
+static int ept_deleted;
+
+static int rpmsg_check_rcv_msg(struct rpmsg_rcv_msg *rcv_msg, uint32_t exp_num)
+{
+ int i, ret = RPMSG_SUCCESS;
+ struct _payload *r_payload = rcv_msg->payload;
+
+ if (r_payload->num != exp_num) {
+ NO_COPY_MASTER_DEBUG_E("Invalid message number received %ld, expected %d\r\n",
+ r_payload->num, exp_num);
+ ret = RPMSG_ERR_PARAM;
+ goto out;
+ }
+
+ if (r_payload->size == 0) {
+ NO_COPY_MASTER_DEBUG_E(" Invalid size of package is received.\r\n");
+ ret = RPMSG_ERR_PARAM;
+ goto out;
+ }
+
+ /* Validate data buffer integrity. */
+ for (i = 0; i < (int)r_payload->size; i++) {
+ if (r_payload->data[i] != 0xA5) {
+ NO_COPY_MASTER_DEBUG_I("Data corruption at index %d\r\n", i);
+ ret = RPMSG_ERR_PARAM;
+ goto out;
+ }
+ }
+out:
+ rpmsg_release_rx_buffer(rcv_msg->ept, r_payload);
+
+ return ret;
+}
+
+static int rpmsg_endpoint_cb(struct rpmsg_endpoint *ept, void *data, size_t len,
+ uint32_t src, void *priv)
+{
+ (void)src;
+ (void)priv;
+
+ rpmsg_hold_rx_buffer(ept, data);
+ rcv_msg.ept = ept;
+ rcv_msg.payload = (struct _payload *)data;
+ rcv_msg.len = len;
+
+ NO_COPY_MASTER_DEBUG_I(" received payload number %lu of size %lu \r\n",
+ rcv_msg.payload->num, (unsigned long)len);
+
+ rnum = rcv_msg.payload->num + 1;
+ return RPMSG_SUCCESS;
+}
+
+static void rpmsg_service_unbind(struct rpmsg_endpoint *ept)
+{
+ (void)ept;
+ rpmsg_destroy_ept(&lept);
+ NO_COPY_MASTER_DEBUG_I("echo test: service is destroyed\r\n");
+ ept_deleted = 1;
+}
+
+static void rpmsg_name_service_bind_cb(struct rpmsg_device *rdev,
+ const char *name, uint32_t dest)
+{
+ NO_COPY_MASTER_DEBUG_I("new endpoint notification is received.\r\n");
+ if (strcmp(name, RPMSG_SERVICE_NAME))
+ NO_COPY_MASTER_DEBUG_E("Unexpected name service %s.\r\n", name);
+ else
+ (void)rpmsg_create_ept(&lept, rdev, RPMSG_SERVICE_NAME,
+ RPMSG_ADDR_ANY, dest,
+ rpmsg_endpoint_cb,
+ rpmsg_service_unbind);
+
+}
+
+static int app(struct rpmsg_device *rdev, void *priv)
+{
+ int ret;
+ int i, num_payloads;
+ uint32_t size, max_size;
+ int expect_rnum = 0;
+
+ rnum = 0;
+ err_cnt = 0;
+ ept_deleted = 0;
+
+ NO_COPY_MASTER_DEBUG_I(" 1 - Send data to remote core, retrieve the echo");
+ NO_COPY_MASTER_DEBUG_I(" and validate its integrity ..\r\n");
+
+ max_size = rpmsg_virtio_get_buffer_size(rdev);
+ if ((int32_t)max_size < 0) {
+ NO_COPY_MASTER_DEBUG_E("No available buffer size.\r\n");
+ return -1;
+ }
+ max_size -= sizeof(struct _payload);
+ num_payloads = max_size - PAYLOAD_MIN_SIZE + 1;
+
+ /* Create RPMsg endpoint */
+ ret = rpmsg_create_ept(&lept, rdev, RPMSG_SERVICE_NAME,
+ RPMSG_ADDR_ANY, RPMSG_ADDR_ANY,
+ rpmsg_endpoint_cb, rpmsg_service_unbind);
+
+ if (ret) {
+ NO_COPY_MASTER_DEBUG_E("Failed to create RPMsg endpoint.\r\n");
+ return ret;
+ }
+
+ while (!is_rpmsg_ept_ready(&lept))
+ platform_poll(priv);
+
+ NO_COPY_MASTER_DEBUG_I("RPMSG endpoint is binded with remote.\r\n");
+ for (i = 0, size = PAYLOAD_MIN_SIZE; i < num_payloads; i++, size++) {
+ struct _payload *i_payload;
+
+ i_payload = rpmsg_get_tx_payload_buffer(&lept, &max_size, 1);
+ if (!i_payload) {
+ NO_COPY_MASTER_DEBUG_E("Failed to get payload...\r\n");
+ break;
+ }
+
+ i_payload->num = i;
+ i_payload->size = size;
+
+ /* Mark the data buffer. */
+ memset(&i_payload->data[0], 0xA5, size);
+
+ NO_COPY_MASTER_DEBUG_I("sending payload number %lu of size %lu\r\n",
+ i_payload->num,
+ (unsigned long)(2 * sizeof(unsigned long)) + size);
+
+ ret = rpmsg_send_nocopy(&lept, i_payload,
+ (2 * sizeof(unsigned long)) + size);
+
+ if (ret < 0) {
+ NO_COPY_MASTER_DEBUG_E("Failed to send data...\r\n");
+ break;
+ }
+ NO_COPY_MASTER_DEBUG_I("echo test: sent : %lu\r\n",
+ (unsigned long)(2 * sizeof(unsigned long)) + size);
+
+ expect_rnum++;
+ do {
+ platform_poll(priv);
+ } while ((rnum < expect_rnum) && !ept_deleted);
+
+ if (ept_deleted)
+ break;
+ if (rpmsg_check_rcv_msg(&rcv_msg, expect_rnum - 1))
+ err_cnt++;
+ }
+
+ NO_COPY_MASTER_DEBUG_I("**********************************\r\n");
+ NO_COPY_MASTER_DEBUG_I(" Test Results: Error count = %d \r\n", err_cnt);
+ NO_COPY_MASTER_DEBUG_I("**********************************\r\n");
+ /* Destroy the RPMsg endpoint */
+ rpmsg_destroy_ept(&lept);
+ NO_COPY_MASTER_DEBUG_I("Quitting application .. Echo test end\r\n");
+
+ return 0;
+}
+
+int rpmsg_nocopy_ping(struct rpmsg_device *rdev, void *priv)
+{
+ metal_assert(rdev);
+ metal_assert(priv);
+
+ int ret;
+ NO_COPY_MASTER_DEBUG_I("Starting rpmsg_nocopy_ping application...\r\n");
+
+ ret = app(rdev, priv);
+ if (ret != 0)
+ {
+ NO_COPY_MASTER_DEBUG_E("Rpmsg_nocopy_ping application error,code:0x%x",ret);
+ return ret;
+ }
+
+ NO_COPY_MASTER_DEBUG_I("Stopping rpmsg_nocopy_ping application...\r\n");
+
+ return ret;
+}
+
diff --git a/example/system/amp/openamp/core1/src/rpmsg-ping.c b/example/system/amp/openamp/core1/src/rpmsg-ping.c
new file mode 100644
index 0000000000000000000000000000000000000000..87a95d44e350eeefd0b62dae683ff1ac484bfe0a
--- /dev/null
+++ b/example/system/amp/openamp/core1/src/rpmsg-ping.c
@@ -0,0 +1,217 @@
+/*
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+/* This is a sample demonstration application that showcases usage of rpmsg
+This application is meant to run on the remote CPU running baremetal code.
+This application echoes back data that was sent to it by the master core. */
+
+/***************************** Include Files *********************************/
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include "platform_info.h"
+#include "rpmsg_service.h"
+#include "fdebug.h"
+
+/************************** Constant Definitions *****************************/
+
+/***************** Macros (Inline Functions) Definitions *********************/
+#define PING_DEV_MASTER_DEBUG_TAG " MASTER_01"
+#define PING_DEV_MASTER_DEBUG_I(format, ...) FT_DEBUG_PRINT_I( PING_DEV_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
+#define PING_DEV_MASTER_DEBUG_W(format, ...) FT_DEBUG_PRINT_W( PING_DEV_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
+#define PING_DEV_MASTER_DEBUG_E(format, ...) FT_DEBUG_PRINT_E( PING_DEV_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
+/**************************** Type Definitions *******************************/
+
+#define PAYLOAD_MIN_SIZE 1
+#define DEMO_ADDR 0x1
+
+/************************** Variable Definitions *****************************/
+struct _payload
+{
+ unsigned long num;
+ unsigned long size;
+ unsigned char data[];
+};
+
+static char flg_cnt;
+/* Globals */
+static struct rpmsg_endpoint lept;
+static struct _payload *i_payload;
+static int rnum = 0;
+static int err_cnt = 0;
+static int ept_deleted = 0;
+
+/************************** Function Prototypes ******************************/
+
+/*-----------------------------------------------------------------------------*
+ * RPMSG endpoint callbacks
+ *-----------------------------------------------------------------------------*/
+static int rpmsg_endpoint_cb(struct rpmsg_endpoint *ept, void *data, size_t len,
+ uint32_t src, void *priv)
+{
+ int i;
+ struct _payload *r_payload = (struct _payload *)data;
+
+ (void)ept;
+ (void)src;
+ (void)priv;
+
+ if (r_payload->size == 0)
+ {
+ PING_DEV_MASTER_DEBUG_E(" Invalid size of package is received.\r\n");
+ err_cnt++;
+ return RPMSG_SUCCESS;
+ }
+ /* Validate data buffer integrity. */
+ for (i = 0; i < (int)r_payload->size; i++)
+ {
+ if (r_payload->data[i] != flg_cnt)
+ {
+ PING_DEV_MASTER_DEBUG_I("Data corruption at index %d.\r\n", i);
+ PING_DEV_MASTER_DEBUG_I("Want data is %d.\r\n", flg_cnt);
+ PING_DEV_MASTER_DEBUG_I("Get data is %d.\r\n", r_payload->data[i]);
+ err_cnt++;
+ break;
+ }
+ }
+ rnum = r_payload->num + 1;
+ return RPMSG_SUCCESS;
+}
+
+static void rpmsg_service_unbind(struct rpmsg_endpoint *ept)
+{
+ (void)ept;
+ rpmsg_destroy_ept(&lept);
+ PING_DEV_MASTER_DEBUG_I("Echo test: service is destroyed.\r\n");
+ ept_deleted = 1;
+}
+
+static void rpmsg_name_service_bind_cb(struct rpmsg_device *rdev,
+ const char *name, uint32_t dest)
+{
+ PING_DEV_MASTER_DEBUG_I("New endpoint notification is received.\r\n");
+ if (strcmp(name, RPMSG_SERVICE_NAME))
+ {
+ PING_DEV_MASTER_DEBUG_E("Unexpected name service %s.\r\n", name);
+ }
+ else
+ (void)rpmsg_create_ept(&lept, rdev, RPMSG_SERVICE_NAME,
+ RPMSG_ADDR_ANY, dest,
+ rpmsg_endpoint_cb,
+ rpmsg_service_unbind);
+
+}
+
+/*-----------------------------------------------------------------------------*
+ * Application
+ *-----------------------------------------------------------------------------*/
+static int app(struct rpmsg_device *rdev, void *priv)
+{
+ int ret;
+ int i;
+ int size, max_size, num_payloads;
+ int expect_rnum = 0;
+ rnum = 0;
+ err_cnt = 0;
+ ept_deleted = 0;
+
+ PING_DEV_MASTER_DEBUG_I("Send data to remote core, retrieve the echo.");
+ PING_DEV_MASTER_DEBUG_I(" and validate its integrity ..\r\n");
+
+ max_size = rpmsg_virtio_get_buffer_size(rdev);
+ if (max_size < 0)
+ {
+ PING_DEV_MASTER_DEBUG_E("No avaiable buffer size.\r\n");
+ return -1;
+ }
+ max_size -= sizeof(struct _payload);
+ num_payloads = max_size - PAYLOAD_MIN_SIZE + 1;
+ i_payload =
+ (struct _payload *)metal_allocate_memory(2 * sizeof(unsigned long) +
+ max_size);
+
+ if (!i_payload)
+ {
+ PING_DEV_MASTER_DEBUG_E("Memory allocation failed.\r\n");
+ return -1;
+ }
+
+ /* Create RPMsg endpoint */
+ ret = rpmsg_create_ept(&lept, rdev, RPMSG_SERVICE_NAME,
+ RPMSG_ADDR_ANY, RPMSG_ADDR_ANY,
+ rpmsg_endpoint_cb, rpmsg_service_unbind);
+
+ if (ret)
+ {
+ PING_DEV_MASTER_DEBUG_E("Failed to create RPMsg endpoint.\r\n");
+ metal_free_memory(i_payload);
+ return ret;
+ }
+ while (!is_rpmsg_ept_ready(&lept))
+ {
+ PING_DEV_MASTER_DEBUG_I("start to wait platform_poll \r\n");
+ platform_poll(priv);
+ }
+
+ PING_DEV_MASTER_DEBUG_I("RPMSG endpoint is binded with remote.\r\n");
+ for (i = 0, size = PAYLOAD_MIN_SIZE; i < num_payloads; i++, size++)
+ {
+ i_payload->num = i;
+ i_payload->size = size;
+ flg_cnt++;
+ /* Mark the data buffer. */
+ memset(&(i_payload->data[0]), flg_cnt, size);
+
+ ret = rpmsg_send(&lept, i_payload, (2 * sizeof(unsigned long)) + size);
+ if (ret < 0)
+ {
+ PING_DEV_MASTER_DEBUG_E("Failed to send data...\r\n");
+ break;
+ }
+
+ expect_rnum++;
+ do
+ {
+ platform_poll(priv);
+ }
+ while ((rnum < expect_rnum) && !err_cnt && !ept_deleted);
+
+ }
+
+ PING_DEV_MASTER_DEBUG_I("**********************************\r\n");
+ PING_DEV_MASTER_DEBUG_I(" Test Results: Error count = %d \r\n", err_cnt);
+ PING_DEV_MASTER_DEBUG_I("**********************************\r\n");
+ /* Destroy the RPMsg endpoint */
+ /* lept.addr = RPMSG_ADDR_ANY 远程endpoint 才能触发 rpmsg_service_unbind 事件回调退出 */
+ rpmsg_destroy_ept(&lept);
+ PING_DEV_MASTER_DEBUG_I("Quitting application .. Echo test end\r\n");
+
+ metal_free_memory(i_payload);
+ return 0;
+}
+
+int rpmsg_ping(struct rpmsg_device *rdev, void *priv)
+{
+ metal_assert(rdev);
+ metal_assert(priv);
+ int ret;
+
+ PING_DEV_MASTER_DEBUG_I("Starting rpmsg_ping application...\r\n");
+
+ ret = app(rdev, priv);
+ if (ret != 0)
+ {
+ PING_DEV_MASTER_DEBUG_E("Rpmsg_ping application error,code:0x%x",ret);
+ return ret;
+ }
+
+ PING_DEV_MASTER_DEBUG_I("Stopping rpmsg_ping application...\r\n");
+
+ return ret;
+}
+
diff --git a/example/system/amp/openamp/core1/src/rpmsg-sample-ping.c b/example/system/amp/openamp/core1/src/rpmsg-sample-ping.c
new file mode 100644
index 0000000000000000000000000000000000000000..11d8d185121e1f9819003e267a4a269b0f690d2d
--- /dev/null
+++ b/example/system/amp/openamp/core1/src/rpmsg-sample-ping.c
@@ -0,0 +1,182 @@
+/*
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+/*
+ * This is a sample demonstration application that showcases usage of rpmsg
+ * This application is meant to run on the remote CPU running baremetal code.
+ * This application simulate sample rpmsg driver. For this it echo 100
+ * time message sent by the rpmsg sample client available in distribution.
+ */
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include "platform_info.h"
+#include "rpmsg_service.h"
+#include "fdebug.h"
+
+/***************** Macros (Inline Functions) Definitions *********************/
+#define VIRTIO_DEV_MASTER_DEBUG_TAG " MASTER_02"
+#define VIRTIO_DEV_MASTER_DEBUG_I(format, ...) FT_DEBUG_PRINT_I( VIRTIO_DEV_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
+#define VIRTIO_DEV_MASTER_DEBUG_W(format, ...) FT_DEBUG_PRINT_W( VIRTIO_DEV_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
+#define VIRTIO_DEV_MASTER_DEBUG_E(format, ...) FT_DEBUG_PRINT_E( VIRTIO_DEV_MASTER_DEBUG_TAG, format, ##__VA_ARGS__)
+
+#define HELLO_MSG "hello world!"
+#define BYE_MSG "goodbye!"
+#define MSG_LIMIT 100
+
+/* Globals */
+static struct rpmsg_endpoint lept;
+static int rnum = 0;
+static int err_cnt = 0;
+static int ept_deleted = 0;
+
+/*-----------------------------------------------------------------------------*
+ * RPMSG endpoint callbacks
+ *-----------------------------------------------------------------------------*/
+static int rpmsg_endpoint_cb(struct rpmsg_endpoint *ept, void *data, size_t len,
+ uint32_t src, void *priv)
+{
+ char payload[RPMSG_BUFFER_SIZE];
+ char seed[20];
+
+ (void)ept;
+ (void)src;
+ (void)priv;
+
+ memset(payload, 0, RPMSG_BUFFER_SIZE);
+ memcpy(payload, data, len);
+ VIRTIO_DEV_MASTER_DEBUG_I("received message %d: %s of size %lu \r\n",
+ rnum + 1, payload, (unsigned long)len);
+
+ if (rnum == (MSG_LIMIT - 1))
+ sprintf (seed, "%s", BYE_MSG);
+ else
+ sprintf (seed, "%s", HELLO_MSG);
+
+ VIRTIO_DEV_MASTER_DEBUG_I(" seed %s: \r\n", seed);
+
+ if (strncmp(payload, seed, len)) {
+ VIRTIO_DEV_MASTER_DEBUG_E(" Invalid message is received.\r\n");
+ err_cnt++;
+ return RPMSG_SUCCESS;
+ }
+ rnum++;
+ VIRTIO_DEV_MASTER_DEBUG_I(" rnum %d: \r\n", rnum);
+ if (rnum == MSG_LIMIT)
+ {
+ ept_deleted = 1;
+ }
+ return RPMSG_SUCCESS;
+}
+
+static void rpmsg_service_unbind(struct rpmsg_endpoint *ept)
+{
+ (void)ept;
+ rpmsg_destroy_ept(&lept);
+ VIRTIO_DEV_MASTER_DEBUG_I("echo test: service is destroyed\r\n");
+ ept_deleted = 1;
+}
+
+static void rpmsg_name_service_bind_cb(struct rpmsg_device *rdev,
+ const char *name, uint32_t dest)
+{
+ VIRTIO_DEV_MASTER_DEBUG_I("new endpoint notification is received.\r\n");
+ if (strcmp(name, RPMSG_SERVICE_NAME))
+ VIRTIO_DEV_MASTER_DEBUG_E("Unexpected name service %s.\r\n", name);
+ else
+ (void)rpmsg_create_ept(&lept, rdev, RPMSG_SERVICE_NAME,
+ RPMSG_ADDR_ANY, dest,
+ rpmsg_endpoint_cb,
+ rpmsg_service_unbind);
+
+}
+
+/*-----------------------------------------------------------------------------*
+ * Application
+ *-----------------------------------------------------------------------------*/
+static int app(struct rpmsg_device *rdev, void *priv)
+{
+ int ret;
+ int i;
+ rnum = 0;
+ err_cnt = 0;
+ ept_deleted = 0;
+
+ VIRTIO_DEV_MASTER_DEBUG_I(" 1 - Send data to remote core, retrieve the echo");
+
+ /* Create RPMsg endpoint */
+ ret = rpmsg_create_ept(&lept, rdev, RPMSG_SERVICE_NAME,
+ RPMSG_ADDR_ANY, RPMSG_ADDR_ANY,
+ rpmsg_endpoint_cb, rpmsg_service_unbind);
+
+ if (ret) {
+ VIRTIO_DEV_MASTER_DEBUG_E("Failed to create RPMsg endpoint.\r\n");
+ return ret;
+ }
+
+ while (!is_rpmsg_ept_ready(&lept))
+ {
+ VIRTIO_DEV_MASTER_DEBUG_I("start to wait platform_poll \r\n");
+ platform_poll(priv);
+ }
+
+ VIRTIO_DEV_MASTER_DEBUG_I("RPMSG endpoint is binded with remote.\r\n");
+ for (i = 1; i <= MSG_LIMIT; i++) {
+
+
+ if (i < MSG_LIMIT)
+ ret = rpmsg_send(&lept, HELLO_MSG, strlen(HELLO_MSG));
+ else
+ ret = rpmsg_send(&lept, BYE_MSG, strlen(BYE_MSG));
+
+ if (ret < 0) {
+ VIRTIO_DEV_MASTER_DEBUG_E("Failed to send data...\r\n");
+ break;
+ }
+ VIRTIO_DEV_MASTER_DEBUG_I("rpmsg sample test: message %d sent\r\n", i);
+
+ do {
+ platform_poll(priv);
+ } while ((rnum < i) && !err_cnt);
+
+ }
+
+ VIRTIO_DEV_MASTER_DEBUG_I("**********************************\r\n");
+ VIRTIO_DEV_MASTER_DEBUG_I(" Test Results: Error count = %d\r\n", err_cnt);
+ VIRTIO_DEV_MASTER_DEBUG_I("**********************************\r\n");
+
+ while (!ept_deleted)
+ {
+ platform_poll(priv);
+ }
+ rpmsg_destroy_ept(&lept);
+ VIRTIO_DEV_MASTER_DEBUG_I("Quitting application .. rpmsg sample test end.\r\n");
+
+ return 0;
+}
+
+int rpmsg_sample_ping(struct rpmsg_device *rdev, void *priv)
+{
+ metal_assert(rdev);
+ metal_assert(priv);
+ int ret;
+
+ VIRTIO_DEV_MASTER_DEBUG_I("Starting rpmsg_sample_ping application...\r\n");
+
+ ret = app(rdev, priv);
+ if (ret != 0)
+ {
+ VIRTIO_DEV_MASTER_DEBUG_E("Rpmsg_sample_ping application error,code:0x%x",ret);
+ return ret;
+ }
+
+ VIRTIO_DEV_MASTER_DEBUG_I("Stopping rpmsg_sample_ping application...\r\n");
+
+ return ret;
+}
+
diff --git a/example/system/amp/openamp/figs/Core0Openampconfig.png b/example/system/amp/openamp/figs/Core0Openampconfig.png
deleted file mode 100644
index e1d4711185046681dcb8173d4ba5bdfc220ca934..0000000000000000000000000000000000000000
Binary files a/example/system/amp/openamp/figs/Core0Openampconfig.png and /dev/null differ
diff --git a/example/system/amp/openamp/figs/Core1Openampconfig.png b/example/system/amp/openamp/figs/Core1Openampconfig.png
deleted file mode 100644
index dd4e445bb261cf637b03afcdb6e1fcf4e611d9e7..0000000000000000000000000000000000000000
Binary files a/example/system/amp/openamp/figs/Core1Openampconfig.png and /dev/null differ
diff --git a/example/system/amp/openamp/figs/E2000D_aarch32_openamp_reault.png b/example/system/amp/openamp/figs/E2000D_aarch32_openamp_reault.png
new file mode 100644
index 0000000000000000000000000000000000000000..d52ab0f09d0913295991f1dbd33d7fc0b674e311
Binary files /dev/null and b/example/system/amp/openamp/figs/E2000D_aarch32_openamp_reault.png differ
diff --git a/example/system/amp/openamp/figs/E2000D_aarch32_openamp_startup.png b/example/system/amp/openamp/figs/E2000D_aarch32_openamp_startup.png
new file mode 100644
index 0000000000000000000000000000000000000000..dd80dc2589d50aea7e55fd06b629b0d016f21862
Binary files /dev/null and b/example/system/amp/openamp/figs/E2000D_aarch32_openamp_startup.png differ
diff --git a/example/system/amp/openamp/figs/E2000D_aarch64_openamp_startup.png b/example/system/amp/openamp/figs/E2000D_aarch64_openamp_startup.png
new file mode 100644
index 0000000000000000000000000000000000000000..051a9d85af291d2e080ab420ea3faa8adfe213ec
Binary files /dev/null and b/example/system/amp/openamp/figs/E2000D_aarch64_openamp_startup.png differ
diff --git a/example/system/amp/openamp/figs/aarch32_runtime.png b/example/system/amp/openamp/figs/aarch32_runtime.png
index 51f4be952ab4e7ea00f915d18934a14e2900c3f4..83c9077b78cd77399b2a622ecbd77ba3a94e0590 100644
Binary files a/example/system/amp/openamp/figs/aarch32_runtime.png and b/example/system/amp/openamp/figs/aarch32_runtime.png differ
diff --git a/example/system/amp/openamp/figs/aarch32_runtime1.png b/example/system/amp/openamp/figs/aarch32_runtime1.png
new file mode 100644
index 0000000000000000000000000000000000000000..c2f5ce7f561c131b166982b5e5c0358964b003b2
Binary files /dev/null and b/example/system/amp/openamp/figs/aarch32_runtime1.png differ
diff --git a/example/system/amp/openamp/figs/aarch64_runtime.png b/example/system/amp/openamp/figs/aarch64_runtime.png
index 36fa14e484747cf322f82ccb8d333ef9d63dc7e9..09754fbf403d16e26c6dcef451f5aae1a101f412 100644
Binary files a/example/system/amp/openamp/figs/aarch64_runtime.png and b/example/system/amp/openamp/figs/aarch64_runtime.png differ
diff --git a/example/system/amp/openamp/figs/aarch64_runtime1.png b/example/system/amp/openamp/figs/aarch64_runtime1.png
new file mode 100644
index 0000000000000000000000000000000000000000..35dcd065c6bca81ac6d9b1d6f46e563891b2a04c
Binary files /dev/null and b/example/system/amp/openamp/figs/aarch64_runtime1.png differ
diff --git a/example/system/amp/openamp/figs/d2000_aarch32_openamp_reault.png b/example/system/amp/openamp/figs/d2000_aarch32_openamp_reault.png
deleted file mode 100644
index 6a362bfd29dd6ddb4d84e6a636d3fa7ff4e94d99..0000000000000000000000000000000000000000
Binary files a/example/system/amp/openamp/figs/d2000_aarch32_openamp_reault.png and /dev/null differ
diff --git a/example/system/amp/openamp/figs/d2000_aarch32_openamp_startup.png b/example/system/amp/openamp/figs/d2000_aarch32_openamp_startup.png
deleted file mode 100644
index 903e8bf322283f725c860448b254b527282e0fe2..0000000000000000000000000000000000000000
Binary files a/example/system/amp/openamp/figs/d2000_aarch32_openamp_startup.png and /dev/null differ
diff --git a/example/system/amp/openamp/figs/d2000_aarch64_openamp_reault.png b/example/system/amp/openamp/figs/d2000_aarch64_openamp_reault.png
deleted file mode 100644
index 6a362bfd29dd6ddb4d84e6a636d3fa7ff4e94d99..0000000000000000000000000000000000000000
Binary files a/example/system/amp/openamp/figs/d2000_aarch64_openamp_reault.png and /dev/null differ
diff --git a/example/system/amp/openamp/figs/d2000_aarch64_openamp_startup.png b/example/system/amp/openamp/figs/d2000_aarch64_openamp_startup.png
deleted file mode 100644
index 1e632b129a45b68482b7575bb15f0192f16f884f..0000000000000000000000000000000000000000
Binary files a/example/system/amp/openamp/figs/d2000_aarch64_openamp_startup.png and /dev/null differ
diff --git a/example/system/amp/openamp/figs/d2000_linux_reasult.png b/example/system/amp/openamp/figs/d2000_linux_reasult.png
deleted file mode 100644
index 9c41c4cc1c6f93800ce9ad1c28ba7a14cab51eb8..0000000000000000000000000000000000000000
Binary files a/example/system/amp/openamp/figs/d2000_linux_reasult.png and /dev/null differ
diff --git a/example/system/amp/openamp/figs/freertos_openamp_d2000_aarch32_ampconfig.png b/example/system/amp/openamp/figs/freertos_openamp_d2000_aarch32_ampconfig.png
deleted file mode 100644
index 139f8c3f92553fd3070fc2dd960502ab4d8e11a6..0000000000000000000000000000000000000000
Binary files a/example/system/amp/openamp/figs/freertos_openamp_d2000_aarch32_ampconfig.png and /dev/null differ
diff --git a/example/system/amp/openamp/figs/freertos_openamp_d2000_aarch32_config.png b/example/system/amp/openamp/figs/freertos_openamp_d2000_aarch32_config.png
deleted file mode 100644
index f834e64ba3a844578f505b4d8b47ac9070fd208f..0000000000000000000000000000000000000000
Binary files a/example/system/amp/openamp/figs/freertos_openamp_d2000_aarch32_config.png and /dev/null differ
diff --git a/example/system/amp/openamp/figs/interrupt_set.png b/example/system/amp/openamp/figs/interrupt_set.png
deleted file mode 100644
index 338d54ea14b71525e0a064d1bdd865923ea3ca0e..0000000000000000000000000000000000000000
Binary files a/example/system/amp/openamp/figs/interrupt_set.png and /dev/null differ
diff --git a/example/system/atomic/Kconfig b/example/system/atomic/Kconfig
index 6960b289059a849d42f5f7a0f6b04c2baa49d006..7c6ecec4c1359ef726cb4e7db8666be082dd76b6 100644
--- a/example/system/atomic/Kconfig
+++ b/example/system/atomic/Kconfig
@@ -1,12 +1,3 @@
-mainmenu "Phytium Baremetal Configuration"
-
- menu "Freertos Configuration"
- config TARGET_NAME
- string "Build Target Name"
- default "atomic"
- help
- Build Target name for the demo
-
-endmenu
+mainmenu "Phytium FreeRTOS Configuration"
source "$(SDK_DIR)/../freertos.kconfig"
\ No newline at end of file
diff --git a/example/system/atomic/configs/d2000_aarch32_test_atomic.config b/example/system/atomic/configs/d2000_aarch32_test_atomic.config
index 23f8c7acff8dbf0727c52cc4012ce797ac3127fa..3c79fdb01fcc0b11b00df6b01ada643d5839fc84 100644
--- a/example/system/atomic/configs/d2000_aarch32_test_atomic.config
+++ b/example/system/atomic/configs/d2000_aarch32_test_atomic.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="atomic"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -31,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -83,6 +78,7 @@ CONFIG_D2000_TEST_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="atomic"
# end of Build project name
# end of Board Configuration
@@ -117,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -146,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -185,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -314,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -325,10 +320,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -348,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/atomic/configs/d2000_aarch64_test_atomic.config b/example/system/atomic/configs/d2000_aarch64_test_atomic.config
index 2d237a3948f409aae6174f4397c4c7616e9bb42d..62ee21edf8be3f5abdd1a8919d9cbbd53e0fe45e 100644
--- a/example/system/atomic/configs/d2000_aarch64_test_atomic.config
+++ b/example/system/atomic/configs/d2000_aarch64_test_atomic.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="atomic"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -27,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -85,6 +72,7 @@ CONFIG_D2000_TEST_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="atomic"
# end of Build project name
# end of Board Configuration
@@ -119,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -148,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -187,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -312,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -323,10 +310,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -346,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/atomic/configs/e2000d_aarch32_demo_atomic.config b/example/system/atomic/configs/e2000d_aarch32_demo_atomic.config
index 0107b0a3504befecb1a1bba92aa6967a9886b646..a4f5d42ecc13dec1cb5b1611c56ad6bd2005eef3 100644
--- a/example/system/atomic/configs/e2000d_aarch32_demo_atomic.config
+++ b/example/system/atomic/configs/e2000d_aarch32_demo_atomic.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="atomic"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -31,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -96,6 +91,7 @@ CONFIG_BOARD_NAME="demo"
#
# Build project name
#
+CONFIG_TARGET_NAME="atomic"
# end of Build project name
# end of Board Configuration
@@ -130,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +153,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +323,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +333,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +358,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/atomic/configs/e2000d_aarch64_demo_atomic.config b/example/system/atomic/configs/e2000d_aarch64_demo_atomic.config
index 5871f644695786f28ee2b3f2820fc893139f0530..37c3b6e3500ccba1065ce9b0249b7cc8f294f144 100644
--- a/example/system/atomic/configs/e2000d_aarch64_demo_atomic.config
+++ b/example/system/atomic/configs/e2000d_aarch64_demo_atomic.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="atomic"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -27,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -98,6 +85,7 @@ CONFIG_BOARD_NAME="demo"
#
# Build project name
#
+CONFIG_TARGET_NAME="atomic"
# end of Build project name
# end of Board Configuration
@@ -132,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +147,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -325,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -336,10 +323,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -359,4 +348,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/atomic/configs/e2000q_aarch32_demo_atomic.config b/example/system/atomic/configs/e2000q_aarch32_demo_atomic.config
index 809f1fbdefbaa766b42bf54370ac5f11b577cca6..f75c3cd00e2c67eba6d24890fc8745aa6bf23a9f 100644
--- a/example/system/atomic/configs/e2000q_aarch32_demo_atomic.config
+++ b/example/system/atomic/configs/e2000q_aarch32_demo_atomic.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="atomic"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -31,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -95,6 +90,7 @@ CONFIG_E2000Q_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="atomic"
# end of Build project name
# end of Board Configuration
@@ -129,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -158,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -197,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +322,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +332,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +357,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/atomic/configs/e2000q_aarch64_demo_atomic.config b/example/system/atomic/configs/e2000q_aarch64_demo_atomic.config
index dd3d990a38a710ebe5bb4e4433e477903f75dfcf..8eb009ea6ad1114f901e419511e33b35beffa2f3 100644
--- a/example/system/atomic/configs/e2000q_aarch64_demo_atomic.config
+++ b/example/system/atomic/configs/e2000q_aarch64_demo_atomic.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="atomic"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -27,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -97,6 +84,7 @@ CONFIG_E2000Q_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="atomic"
# end of Build project name
# end of Board Configuration
@@ -131,8 +119,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +146,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +186,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -324,7 +312,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -335,10 +322,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -358,4 +347,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/atomic/configs/ft2004_aarch32_dsk_atomic.config b/example/system/atomic/configs/ft2004_aarch32_dsk_atomic.config
index d043d920b1b27864bcb4cdfaf6cc738d229f4040..cdafed243064a39b30fa39e5777fb95eb5307325 100644
--- a/example/system/atomic/configs/ft2004_aarch32_dsk_atomic.config
+++ b/example/system/atomic/configs/ft2004_aarch32_dsk_atomic.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="atomic"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -31,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -83,6 +78,7 @@ CONFIG_FT2004_DSK_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="atomic"
# end of Build project name
# end of Board Configuration
@@ -117,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -146,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -185,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -314,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -325,10 +320,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -348,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/atomic/configs/ft2004_aarch64_dsk_atomic.config b/example/system/atomic/configs/ft2004_aarch64_dsk_atomic.config
index c09684e400e3c1c1a85785e4709828e40c100cd0..a64bbd58ce5f8060b657ddc78e3484d1a786a9ea 100644
--- a/example/system/atomic/configs/ft2004_aarch64_dsk_atomic.config
+++ b/example/system/atomic/configs/ft2004_aarch64_dsk_atomic.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="atomic"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -27,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -85,6 +72,7 @@ CONFIG_FT2004_DSK_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="atomic"
# end of Build project name
# end of Board Configuration
@@ -119,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -148,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -187,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -312,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -323,10 +310,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -346,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/atomic/configs/phytiumpi_aarch32_firefly_atomic.config b/example/system/atomic/configs/phytiumpi_aarch32_firefly_atomic.config
index de6a1c4130986ffbb0fb28fe62e85a808f179d31..9754009e083966c456faba4d17f54a36dbdb8f20 100644
--- a/example/system/atomic/configs/phytiumpi_aarch32_firefly_atomic.config
+++ b/example/system/atomic/configs/phytiumpi_aarch32_firefly_atomic.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="atomic"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -31,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -94,6 +89,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="atomic"
# end of Build project name
# end of Board Configuration
@@ -128,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -157,6 +151,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -196,7 +191,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -325,7 +321,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -336,10 +331,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -359,4 +356,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/atomic/configs/phytiumpi_aarch64_firefly_atomic.config b/example/system/atomic/configs/phytiumpi_aarch64_firefly_atomic.config
index f3a1c71f82a3b208c40e99953360f6a4c9fae8d1..6b957f9e0821e0433a0507c90419d0727cdd9981 100644
--- a/example/system/atomic/configs/phytiumpi_aarch64_firefly_atomic.config
+++ b/example/system/atomic/configs/phytiumpi_aarch64_firefly_atomic.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="atomic"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -27,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -96,6 +83,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="atomic"
# end of Build project name
# end of Board Configuration
@@ -130,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -323,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -334,10 +321,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -357,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/atomic/sdkconfig b/example/system/atomic/sdkconfig
index f3a1c71f82a3b208c40e99953360f6a4c9fae8d1..6b957f9e0821e0433a0507c90419d0727cdd9981 100644
--- a/example/system/atomic/sdkconfig
+++ b/example/system/atomic/sdkconfig
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="atomic"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -27,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -96,6 +83,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="atomic"
# end of Build project name
# end of Board Configuration
@@ -130,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -323,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -334,10 +321,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -357,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/atomic/sdkconfig.h b/example/system/atomic/sdkconfig.h
index 229eb3f35efa290612d35edfe0fda4a00e0fcf9e..ecbca9bf80d00e18c872b5facd2f80dad95ace2c 100644
--- a/example/system/atomic/sdkconfig.h
+++ b/example/system/atomic/sdkconfig.h
@@ -1,10 +1,6 @@
#ifndef SDK_CONFIG_H__
#define SDK_CONFIG_H__
-/* Freertos Configuration */
-
-#define CONFIG_TARGET_NAME "atomic"
-/* end of Freertos Configuration */
#define CONFIG_USE_FREERTOS
/* Arch configuration */
@@ -24,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -85,6 +77,7 @@
/* Build project name */
+#define CONFIG_TARGET_NAME "atomic"
/* end of Build project name */
/* end of Board Configuration */
@@ -116,8 +109,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -143,6 +134,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -178,7 +170,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -282,7 +275,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -293,9 +285,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -315,6 +309,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/system/exception_debug/Kconfig b/example/system/exception_debug/Kconfig
index fe8706f8be8977f6a22e8b53c4f992f8aff227c0..b924bf924966d03ddb8caa2c95024a44b9d7e0ea 100644
--- a/example/system/exception_debug/Kconfig
+++ b/example/system/exception_debug/Kconfig
@@ -1,12 +1,6 @@
-mainmenu "Phytium Baremetal Configuration"
+mainmenu "Phytium FreeRTOS Configuration"
menu "Project Configuration"
-
- config TARGET_NAME
- string "Build Target Name"
- default "exception"
- help
- Build Target name for the demo
choice EXCEPTION_TEST_TYPE
prompt "exception type"
diff --git a/example/system/exception_debug/configs/d2000_aarch32_test_exception.config b/example/system/exception_debug/configs/d2000_aarch32_test_exception.config
index e445ce996902b3e45febf78a070a2481e97a8888..1fd170a5bdc9c8da37a7058c0a225966e1b3044d 100644
--- a/example/system/exception_debug/configs/d2000_aarch32_test_exception.config
+++ b/example/system/exception_debug/configs/d2000_aarch32_test_exception.config
@@ -2,7 +2,6 @@
#
# Project Configuration
#
-CONFIG_TARGET_NAME="exception"
CONFIG_EXCEPTION_INVALID_INSTRUCTION=y
# CONFIG_EXCEPTION_ACCESS_PERMISSION_ERROR is not set
# CONFIG_EXCEPTION_ACCESS_VIOLATION is not set
@@ -34,13 +33,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -86,6 +87,7 @@ CONFIG_D2000_TEST_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="exception"
# end of Build project name
# end of Board Configuration
@@ -120,8 +122,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -149,6 +149,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -188,7 +189,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -317,7 +319,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -328,10 +329,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -351,4 +354,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/exception_debug/configs/d2000_aarch64_test_exception.config b/example/system/exception_debug/configs/d2000_aarch64_test_exception.config
index 7f3b48d1d5cb0813f898c8eb92b3b6a12d7fea2f..abbe1eddd804391759257787871700055ce167ba 100644
--- a/example/system/exception_debug/configs/d2000_aarch64_test_exception.config
+++ b/example/system/exception_debug/configs/d2000_aarch64_test_exception.config
@@ -2,7 +2,6 @@
#
# Project Configuration
#
-CONFIG_TARGET_NAME="exception"
CONFIG_EXCEPTION_INVALID_INSTRUCTION=y
# CONFIG_EXCEPTION_ACCESS_PERMISSION_ERROR is not set
# CONFIG_EXCEPTION_ACCESS_VIOLATION is not set
@@ -30,13 +29,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -88,6 +81,7 @@ CONFIG_D2000_TEST_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="exception"
# end of Build project name
# end of Board Configuration
@@ -122,8 +116,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -151,6 +143,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -190,7 +183,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -315,7 +309,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -326,10 +319,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -349,4 +344,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/exception_debug/configs/e2000d_aarch32_demo_exception.config b/example/system/exception_debug/configs/e2000d_aarch32_demo_exception.config
index a98effba725bae83e4be7ebebf1504656e623bc3..eaefdb5840b9f74bcbac1e46f861d35b0bf910d0 100644
--- a/example/system/exception_debug/configs/e2000d_aarch32_demo_exception.config
+++ b/example/system/exception_debug/configs/e2000d_aarch32_demo_exception.config
@@ -2,7 +2,6 @@
#
# Project Configuration
#
-CONFIG_TARGET_NAME="exception"
CONFIG_EXCEPTION_INVALID_INSTRUCTION=y
# CONFIG_EXCEPTION_ACCESS_PERMISSION_ERROR is not set
# CONFIG_EXCEPTION_ACCESS_VIOLATION is not set
@@ -34,13 +33,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -99,6 +100,7 @@ CONFIG_BOARD_NAME="demo"
#
# Build project name
#
+CONFIG_TARGET_NAME="exception"
# end of Build project name
# end of Board Configuration
@@ -133,8 +135,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +162,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +202,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -330,7 +332,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -341,10 +342,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -364,4 +367,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/exception_debug/configs/e2000d_aarch64_demo_exception.config b/example/system/exception_debug/configs/e2000d_aarch64_demo_exception.config
index 4d45209fc72d36dd17b166e64fdef917dceba844..95a415b61ef0be23ee20c598354ec15f9fc1d2f2 100644
--- a/example/system/exception_debug/configs/e2000d_aarch64_demo_exception.config
+++ b/example/system/exception_debug/configs/e2000d_aarch64_demo_exception.config
@@ -2,7 +2,6 @@
#
# Project Configuration
#
-CONFIG_TARGET_NAME="exception"
CONFIG_EXCEPTION_INVALID_INSTRUCTION=y
# CONFIG_EXCEPTION_ACCESS_PERMISSION_ERROR is not set
# CONFIG_EXCEPTION_ACCESS_VIOLATION is not set
@@ -30,13 +29,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -101,6 +94,7 @@ CONFIG_BOARD_NAME="demo"
#
# Build project name
#
+CONFIG_TARGET_NAME="exception"
# end of Build project name
# end of Board Configuration
@@ -135,8 +129,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -164,6 +156,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -203,7 +196,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -328,7 +322,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -339,10 +332,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -362,4 +357,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/exception_debug/configs/e2000q_aarch32_demo_exception.config b/example/system/exception_debug/configs/e2000q_aarch32_demo_exception.config
index b227c428579b5bfdff148c766defbd665133b2b2..d92b43484af38a38f806c6f0dcbeab7c28a3ec46 100644
--- a/example/system/exception_debug/configs/e2000q_aarch32_demo_exception.config
+++ b/example/system/exception_debug/configs/e2000q_aarch32_demo_exception.config
@@ -2,7 +2,6 @@
#
# Project Configuration
#
-CONFIG_TARGET_NAME="exception"
CONFIG_EXCEPTION_INVALID_INSTRUCTION=y
# CONFIG_EXCEPTION_ACCESS_PERMISSION_ERROR is not set
# CONFIG_EXCEPTION_ACCESS_VIOLATION is not set
@@ -34,13 +33,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -98,6 +99,7 @@ CONFIG_E2000Q_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="exception"
# end of Build project name
# end of Board Configuration
@@ -132,8 +134,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +161,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +201,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -329,7 +331,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -340,10 +341,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -363,4 +366,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/exception_debug/configs/e2000q_aarch64_demo_exception.config b/example/system/exception_debug/configs/e2000q_aarch64_demo_exception.config
index 171742002dbc5db33e19befe66a90e5de63572ff..558d6a973f434a5d32691651c47f4d0629ae91fb 100644
--- a/example/system/exception_debug/configs/e2000q_aarch64_demo_exception.config
+++ b/example/system/exception_debug/configs/e2000q_aarch64_demo_exception.config
@@ -2,7 +2,6 @@
#
# Project Configuration
#
-CONFIG_TARGET_NAME="exception"
CONFIG_EXCEPTION_INVALID_INSTRUCTION=y
# CONFIG_EXCEPTION_ACCESS_PERMISSION_ERROR is not set
# CONFIG_EXCEPTION_ACCESS_VIOLATION is not set
@@ -30,13 +29,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -100,6 +93,7 @@ CONFIG_E2000Q_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="exception"
# end of Build project name
# end of Board Configuration
@@ -134,8 +128,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -163,6 +155,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -202,7 +195,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +321,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +331,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +356,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/exception_debug/configs/ft2004_aarch32_dsk_exception.config b/example/system/exception_debug/configs/ft2004_aarch32_dsk_exception.config
index 2722abcb0f56607076d53c5f2a530bb2688fc861..3e24d61316cd83d65a1abd975a7d7d7a9619d01c 100644
--- a/example/system/exception_debug/configs/ft2004_aarch32_dsk_exception.config
+++ b/example/system/exception_debug/configs/ft2004_aarch32_dsk_exception.config
@@ -2,7 +2,6 @@
#
# Project Configuration
#
-CONFIG_TARGET_NAME="exception"
CONFIG_EXCEPTION_INVALID_INSTRUCTION=y
# CONFIG_EXCEPTION_ACCESS_PERMISSION_ERROR is not set
# CONFIG_EXCEPTION_ACCESS_VIOLATION is not set
@@ -34,13 +33,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -86,6 +87,7 @@ CONFIG_FT2004_DSK_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="exception"
# end of Build project name
# end of Board Configuration
@@ -120,8 +122,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -149,6 +149,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -188,7 +189,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -317,7 +319,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -328,10 +329,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -351,4 +354,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/exception_debug/configs/ft2004_aarch64_dsk_exception.config b/example/system/exception_debug/configs/ft2004_aarch64_dsk_exception.config
index c07c26cd52ec6bfe5584dee8d7c214d6a34a9d19..0d90c57e950dffd60a3a0841cdd7f8fec9b5de6c 100644
--- a/example/system/exception_debug/configs/ft2004_aarch64_dsk_exception.config
+++ b/example/system/exception_debug/configs/ft2004_aarch64_dsk_exception.config
@@ -2,7 +2,6 @@
#
# Project Configuration
#
-CONFIG_TARGET_NAME="exception"
CONFIG_EXCEPTION_INVALID_INSTRUCTION=y
# CONFIG_EXCEPTION_ACCESS_PERMISSION_ERROR is not set
# CONFIG_EXCEPTION_ACCESS_VIOLATION is not set
@@ -30,13 +29,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -88,6 +81,7 @@ CONFIG_FT2004_DSK_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="exception"
# end of Build project name
# end of Board Configuration
@@ -122,8 +116,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -151,6 +143,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -190,7 +183,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -315,7 +309,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -326,10 +319,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -349,4 +344,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/exception_debug/configs/phytiumpi_aarch32_firefly_exception.config b/example/system/exception_debug/configs/phytiumpi_aarch32_firefly_exception.config
index 2a7fe62aa7e4dbc2a747017e264d8ba64e50e8f3..91e1945c083d2f10db5148850ceaf234b6f408e5 100644
--- a/example/system/exception_debug/configs/phytiumpi_aarch32_firefly_exception.config
+++ b/example/system/exception_debug/configs/phytiumpi_aarch32_firefly_exception.config
@@ -2,7 +2,6 @@
#
# Project Configuration
#
-CONFIG_TARGET_NAME="exception"
CONFIG_EXCEPTION_INVALID_INSTRUCTION=y
# CONFIG_EXCEPTION_ACCESS_PERMISSION_ERROR is not set
# CONFIG_EXCEPTION_ACCESS_VIOLATION is not set
@@ -34,13 +33,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -97,6 +98,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="exception"
# end of Build project name
# end of Board Configuration
@@ -131,8 +133,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +160,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +200,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -328,7 +330,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -339,10 +340,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -362,4 +365,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/exception_debug/configs/phytiumpi_aarch64_firefly_exception.config b/example/system/exception_debug/configs/phytiumpi_aarch64_firefly_exception.config
index a7d9dd16e900a414786f8ca55a238b26a15159a3..a08df4cfbd84cfaa503896cf96ab413f51bb57d5 100644
--- a/example/system/exception_debug/configs/phytiumpi_aarch64_firefly_exception.config
+++ b/example/system/exception_debug/configs/phytiumpi_aarch64_firefly_exception.config
@@ -2,7 +2,6 @@
#
# Project Configuration
#
-CONFIG_TARGET_NAME="exception"
CONFIG_EXCEPTION_INVALID_INSTRUCTION=y
# CONFIG_EXCEPTION_ACCESS_PERMISSION_ERROR is not set
# CONFIG_EXCEPTION_ACCESS_VIOLATION is not set
@@ -30,13 +29,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -99,6 +92,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="exception"
# end of Build project name
# end of Board Configuration
@@ -133,8 +127,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +154,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +194,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +320,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +330,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +355,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/exception_debug/sdkconfig b/example/system/exception_debug/sdkconfig
index a7d9dd16e900a414786f8ca55a238b26a15159a3..a08df4cfbd84cfaa503896cf96ab413f51bb57d5 100644
--- a/example/system/exception_debug/sdkconfig
+++ b/example/system/exception_debug/sdkconfig
@@ -2,7 +2,6 @@
#
# Project Configuration
#
-CONFIG_TARGET_NAME="exception"
CONFIG_EXCEPTION_INVALID_INSTRUCTION=y
# CONFIG_EXCEPTION_ACCESS_PERMISSION_ERROR is not set
# CONFIG_EXCEPTION_ACCESS_VIOLATION is not set
@@ -30,13 +29,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -99,6 +92,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="exception"
# end of Build project name
# end of Board Configuration
@@ -133,8 +127,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -162,6 +154,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -201,7 +194,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +320,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +330,12 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +355,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/exception_debug/sdkconfig.h b/example/system/exception_debug/sdkconfig.h
index 6bfd2d15387ae095c78bbfbc07df90e7c95f2bac..e94519f3c993dfc59efb84f646f2b650f906826c 100644
--- a/example/system/exception_debug/sdkconfig.h
+++ b/example/system/exception_debug/sdkconfig.h
@@ -3,7 +3,6 @@
/* Project Configuration */
-#define CONFIG_TARGET_NAME "exception"
#define CONFIG_EXCEPTION_INVALID_INSTRUCTION
/* CONFIG_EXCEPTION_ACCESS_PERMISSION_ERROR is not set */
/* CONFIG_EXCEPTION_ACCESS_VIOLATION is not set */
@@ -27,11 +26,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -88,6 +83,7 @@
/* Build project name */
+#define CONFIG_TARGET_NAME "exception"
/* end of Build project name */
/* end of Board Configuration */
@@ -119,8 +115,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -146,6 +140,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -181,7 +176,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -285,7 +281,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -296,9 +291,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -318,6 +315,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/system/nested_interrupt/Kconfig b/example/system/nested_interrupt/Kconfig
index a8d4ce6a43dedb5a92f7193c9a6a66520d6e8aff..85737972433e777d3e06c44c7f1040fc93e6e900 100644
--- a/example/system/nested_interrupt/Kconfig
+++ b/example/system/nested_interrupt/Kconfig
@@ -1,13 +1,4 @@
-mainmenu "Phytium Freertos Configuration"
-
- menu "Freertos Configuration"
- config TARGET_NAME
- string "Build Target Name"
- default "nested"
- help
- Build Target name for the demo
-
-endmenu
+mainmenu "Phytium FreeRTOS Configuration"
source "$(SDK_DIR)/../freertos.kconfig"
diff --git a/example/system/nested_interrupt/configs/d2000_aarch32_test_nested_interrupt.config b/example/system/nested_interrupt/configs/d2000_aarch32_test_nested_interrupt.config
index fe07ab36773fa11b8473ce77908102f116db55fa..02ca10514fb182390184db5072debf4884c03856 100644
--- a/example/system/nested_interrupt/configs/d2000_aarch32_test_nested_interrupt.config
+++ b/example/system/nested_interrupt/configs/d2000_aarch32_test_nested_interrupt.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="nested_interrupt"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -31,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -83,6 +78,7 @@ CONFIG_D2000_TEST_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="nested_interrupt"
# end of Build project name
# end of Board Configuration
@@ -117,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -146,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -185,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -314,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -325,10 +320,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -348,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/nested_interrupt/configs/d2000_aarch64_test_nested_interrupt.config b/example/system/nested_interrupt/configs/d2000_aarch64_test_nested_interrupt.config
index 07f8b6ac5465a8e350217ad5627ac6c89c3a13c2..969a9fabfa80ea39bf72fa856bc1c7ec13c480e2 100644
--- a/example/system/nested_interrupt/configs/d2000_aarch64_test_nested_interrupt.config
+++ b/example/system/nested_interrupt/configs/d2000_aarch64_test_nested_interrupt.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="nested_interrupt"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -27,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -85,6 +72,7 @@ CONFIG_D2000_TEST_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="nested_interrupt"
# end of Build project name
# end of Board Configuration
@@ -119,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -148,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -187,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -312,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -323,10 +310,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -346,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/nested_interrupt/configs/e2000d_aarch32_demo_nested_interrupt.config b/example/system/nested_interrupt/configs/e2000d_aarch32_demo_nested_interrupt.config
index 32f37d1cb8f04bb8d561a8474105dc6b41016427..23fd839c196aed5eed0aaf410be29ffbced40f4f 100644
--- a/example/system/nested_interrupt/configs/e2000d_aarch32_demo_nested_interrupt.config
+++ b/example/system/nested_interrupt/configs/e2000d_aarch32_demo_nested_interrupt.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="nested_interrupt"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -31,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -96,6 +91,7 @@ CONFIG_BOARD_NAME="demo"
#
# Build project name
#
+CONFIG_TARGET_NAME="nested_interrupt"
# end of Build project name
# end of Board Configuration
@@ -130,8 +126,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +153,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +193,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -327,7 +323,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +333,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -361,4 +358,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/nested_interrupt/configs/e2000d_aarch64_demo_nested_interrupt.config b/example/system/nested_interrupt/configs/e2000d_aarch64_demo_nested_interrupt.config
index bec0f3abfe87935b2736b89a927d6367c9b92c21..14cbc5d8e30a15a21e40e84ec1582c80baa592b5 100644
--- a/example/system/nested_interrupt/configs/e2000d_aarch64_demo_nested_interrupt.config
+++ b/example/system/nested_interrupt/configs/e2000d_aarch64_demo_nested_interrupt.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="nested_interrupt"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -27,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -98,6 +85,7 @@ CONFIG_BOARD_NAME="demo"
#
# Build project name
#
+CONFIG_TARGET_NAME="nested_interrupt"
# end of Build project name
# end of Board Configuration
@@ -132,8 +120,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -161,6 +147,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -200,7 +187,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -325,7 +313,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -336,10 +323,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -359,4 +348,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/nested_interrupt/configs/e2000q_aarch32_demo_nested_interrupt.config b/example/system/nested_interrupt/configs/e2000q_aarch32_demo_nested_interrupt.config
index 6ea3fedff05de417ea1d40f3d6ca4eb806354f71..536722cc7ba71d9274ca439f7ceeee8aa4c7222f 100644
--- a/example/system/nested_interrupt/configs/e2000q_aarch32_demo_nested_interrupt.config
+++ b/example/system/nested_interrupt/configs/e2000q_aarch32_demo_nested_interrupt.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="nested_interrupt"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -31,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -95,6 +90,7 @@ CONFIG_E2000Q_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="nested_interrupt"
# end of Build project name
# end of Board Configuration
@@ -129,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -158,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -197,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -326,7 +322,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -337,10 +332,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -360,4 +357,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/nested_interrupt/configs/e2000q_aarch64_demo_nested_interrupt.config b/example/system/nested_interrupt/configs/e2000q_aarch64_demo_nested_interrupt.config
index a875a1b71f84b22aa7cde8a19732995e0d750d0d..294f6585603d750c3cb74a9c8dd9cb290cadc863 100644
--- a/example/system/nested_interrupt/configs/e2000q_aarch64_demo_nested_interrupt.config
+++ b/example/system/nested_interrupt/configs/e2000q_aarch64_demo_nested_interrupt.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="nested_interrupt"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -27,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -97,6 +84,7 @@ CONFIG_E2000Q_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="nested_interrupt"
# end of Build project name
# end of Board Configuration
@@ -131,8 +119,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -160,6 +146,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -199,7 +186,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -324,7 +312,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -335,10 +322,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -358,4 +347,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/nested_interrupt/configs/ft2004_aarch32_dsk_nested_interrupt.config b/example/system/nested_interrupt/configs/ft2004_aarch32_dsk_nested_interrupt.config
index cff4e929bf8b12e56eb466e50e5252de28f51c67..2a3b684ec6baa82c5b28e80ebaf917f97bdf0876 100644
--- a/example/system/nested_interrupt/configs/ft2004_aarch32_dsk_nested_interrupt.config
+++ b/example/system/nested_interrupt/configs/ft2004_aarch32_dsk_nested_interrupt.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="nested_interrupt"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -31,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -83,6 +78,7 @@ CONFIG_FT2004_DSK_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="nested_interrupt"
# end of Build project name
# end of Board Configuration
@@ -117,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -146,6 +140,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -185,7 +180,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -314,7 +310,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -325,10 +320,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -348,4 +345,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/nested_interrupt/configs/ft2004_aarch64_dsk_nested_interrupt.config b/example/system/nested_interrupt/configs/ft2004_aarch64_dsk_nested_interrupt.config
index cb1c408d25d39a019f041d9bf769f9ca300ad236..0d5fb2a1a7678d9e872cb54a573fa8c66d99e339 100644
--- a/example/system/nested_interrupt/configs/ft2004_aarch64_dsk_nested_interrupt.config
+++ b/example/system/nested_interrupt/configs/ft2004_aarch64_dsk_nested_interrupt.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="nested_interrupt"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -27,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -85,6 +72,7 @@ CONFIG_FT2004_DSK_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="nested_interrupt"
# end of Build project name
# end of Board Configuration
@@ -119,8 +107,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -148,6 +134,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -187,7 +174,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -312,7 +300,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -323,10 +310,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -346,4 +335,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/nested_interrupt/configs/phytiumpi_aarch32_firefly_nested_interrupt.config b/example/system/nested_interrupt/configs/phytiumpi_aarch32_firefly_nested_interrupt.config
index 7ffb678eab3c423509fa665329f3b4d8c1f370f3..430839db5322e0ab19468e881a740d030c7efc81 100644
--- a/example/system/nested_interrupt/configs/phytiumpi_aarch32_firefly_nested_interrupt.config
+++ b/example/system/nested_interrupt/configs/phytiumpi_aarch32_firefly_nested_interrupt.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="nested_interrupt"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -31,13 +24,15 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
-# CONFIG_ARCH_FPU_VFP_V3 is not set
-CONFIG_ARCH_FPU_VFP_V4=y
-CONFIG_ARM_DPFPU32=y
-# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
-CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_CRYPTO_NEON_FP_ARMV8=y
+# CONFIG_VFPV4 is not set
+# CONFIG_VFPV4_D16 is not set
+# CONFIG_VFPV3 is not set
+# CONFIG_VFPV3_D16 is not set
+CONFIG_ARM_MFPU="crypto-neon-fp-armv8"
+CONFIG_MFLOAT_ABI_HARD=y
+# CONFIG_MFLOAT_ABI_SOFTFP is not set
+CONFIG_ARM_MFLOAT_ABI="hard"
# end of Fpu configuration
# end of Compiler configuration
@@ -94,6 +89,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="nested_interrupt"
# end of Build project name
# end of Board Configuration
@@ -128,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -157,6 +151,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -196,7 +191,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -325,7 +321,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -336,10 +331,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -359,4 +356,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/nested_interrupt/configs/phytiumpi_aarch64_firefly_nested_interrupt.config b/example/system/nested_interrupt/configs/phytiumpi_aarch64_firefly_nested_interrupt.config
index faf1d81fa8126e9b594abba34a6f29443a2418cd..163202fbc48074ba2c7037c01f4da144184274d8 100644
--- a/example/system/nested_interrupt/configs/phytiumpi_aarch64_firefly_nested_interrupt.config
+++ b/example/system/nested_interrupt/configs/phytiumpi_aarch64_firefly_nested_interrupt.config
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="nested_interrupt"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -27,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -96,6 +83,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="nested_interrupt"
# end of Build project name
# end of Board Configuration
@@ -130,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -323,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -334,10 +321,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -357,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/nested_interrupt/sdkconfig b/example/system/nested_interrupt/sdkconfig
index faf1d81fa8126e9b594abba34a6f29443a2418cd..163202fbc48074ba2c7037c01f4da144184274d8 100644
--- a/example/system/nested_interrupt/sdkconfig
+++ b/example/system/nested_interrupt/sdkconfig
@@ -1,10 +1,3 @@
-
-#
-# Freertos Configuration
-#
-CONFIG_TARGET_NAME="nested_interrupt"
-# end of Freertos Configuration
-
CONFIG_USE_FREERTOS=y
#
@@ -27,13 +20,7 @@ CONFIG_ARM_GCC_SELECT=y
CONFIG_TOOLCHAIN_NAME="gcc"
CONFIG_TARGET_ARMV8_AARCH64=y
CONFIG_ARCH_EXECUTION_STATE="aarch64"
-
-#
-# Fpu configuration
-#
CONFIG_ARM_NEON=y
-# end of Fpu configuration
-
CONFIG_ARM_CRC=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_FLOAT_POINT=y
@@ -96,6 +83,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
+CONFIG_TARGET_NAME="nested_interrupt"
# end of Build project name
# end of Board Configuration
@@ -130,8 +118,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -159,6 +145,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -198,7 +185,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -323,7 +311,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -334,10 +321,12 @@ CONFIG_USE_BACKTRACE=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# CONFIG_USE_FSL_WIFI is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -357,4 +346,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/nested_interrupt/sdkconfig.h b/example/system/nested_interrupt/sdkconfig.h
index 3b40238704608fa823608d3037ef4ce9b127983f..78387ac3aa3afca94edc2ea141c1e282732ef914 100644
--- a/example/system/nested_interrupt/sdkconfig.h
+++ b/example/system/nested_interrupt/sdkconfig.h
@@ -1,10 +1,6 @@
#ifndef SDK_CONFIG_H__
#define SDK_CONFIG_H__
-/* Freertos Configuration */
-
-#define CONFIG_TARGET_NAME "nested_interrupt"
-/* end of Freertos Configuration */
#define CONFIG_USE_FREERTOS
/* Arch configuration */
@@ -24,11 +20,7 @@
#define CONFIG_TOOLCHAIN_NAME "gcc"
#define CONFIG_TARGET_ARMV8_AARCH64
#define CONFIG_ARCH_EXECUTION_STATE "aarch64"
-
-/* Fpu configuration */
-
#define CONFIG_ARM_NEON
-/* end of Fpu configuration */
#define CONFIG_ARM_CRC
#define CONFIG_ARM_CRYPTO
#define CONFIG_ARM_FLOAT_POINT
@@ -85,6 +77,7 @@
/* Build project name */
+#define CONFIG_TARGET_NAME "nested_interrupt"
/* end of Build project name */
/* end of Board Configuration */
@@ -116,8 +109,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -143,6 +134,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -178,7 +170,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -282,7 +275,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -293,9 +285,11 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* CONFIG_USE_FSL_WIFI is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -315,6 +309,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/example/system/nested_interrupt/src/nested_interrupt.c b/example/system/nested_interrupt/src/nested_interrupt.c
index 2dfc01909cc18549adb42d41b6b33017b5fa91ec..8af22ecf0f2381ba7918ad0c0171b4123d1e524d 100644
--- a/example/system/nested_interrupt/src/nested_interrupt.c
+++ b/example/system/nested_interrupt/src/nested_interrupt.c
@@ -76,6 +76,8 @@ static void vNestedPeriodTask(void *pvParameters)
static void FLowPriorityHandler(s32 vector, void *param)
{
+ static fsize_t value[3] = {0};
+
static float val = 0.3;
val = val * 2.1;
@@ -84,7 +86,7 @@ static void FLowPriorityHandler(s32 vector, void *param)
low_priority_intr_flag++;
/* Enable the nested interrupts to allow preemption */
- INTERRUPT_NESTED_ENABLE();
+ FInterruptNestedEnable(value);
InterruptCoreInterSend(INTERRUPT_HIGH_ID, (1 << cpu_id));
@@ -97,7 +99,7 @@ static void FLowPriorityHandler(s32 vector, void *param)
};
/* Disable the nested interrupt before exiting IRQ mode */
- INTERRUPT_NESTED_DISABLE();
+ FInterruptNestedDisable(value);
printf("low_priority_intr_flag is %d, %f \n\n\n", low_priority_intr_flag, val);
diff --git a/example/system/posix/Kconfig b/example/system/posix/Kconfig
new file mode 100644
index 0000000000000000000000000000000000000000..1be0319edf079581a53c5cc3d36fd60a877f2182
--- /dev/null
+++ b/example/system/posix/Kconfig
@@ -0,0 +1,3 @@
+mainmenu "Phytium freertos Configuration"
+
+source "$(SDK_DIR)/../freertos.kconfig"
diff --git a/example/peripheral/can/README.md b/example/system/posix/README.md
similarity index 50%
rename from example/peripheral/can/README.md
rename to example/system/posix/README.md
index a10667468343083a26cb5e14c8532638cd59e8dc..8793bffd8eb5d87af51ac11fa8440fc048ac0fd2 100644
--- a/example/peripheral/can/README.md
+++ b/example/system/posix/README.md
@@ -1,20 +1,20 @@
-# can base on freertos
+# posix base on freertos
## 1. 例程介绍
-本例程示范了freertos环境下的can的使用,包括can的初始化、can周期发送,接收操作;
-程序启动后,创建can初始化任务,设置can波特率,中断函数、id mask等;
-创建can定时发送任务FFreeRTOSCanSendTask,用于定时发送can报文;
-创建can接收任务FFreeRTOSCanRecvTask,用于接收can报文;
-创建单次模式的软件定时器,回调函数为删除FFreeRTOSCanSendTask,删除FFreeRTOSCanRecvTask,去初始化can,删除软件定时器;
-使用B板进行测试,选择can0和can1回环;
+本例程示范了freertos环境下posix的使用方法。
+POSIX (Portable Operating System Interface) 是定义了操作系统 API 的标准,主要用于通用操作系统,例如 Linux、UNIX 等。
+通过在freertos上增加posix适配层,使得在 freertos 上开发的应用程序能够以 posix 的风格编写和移植。
+- [FreeRTOS-Plus-POSIX](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_POSIX/index.html)
## 2. 如何使用例程
本例程需要用到
-- Phytium开发板(E2000D/E2000Q/D2000/FT2000-4)
+
+- Phytium开发板(FT2000-4/D2000/E2000D/E2000Q/PHYTIUMPI)
- [Phytium freeRTOS SDK](https://gitee.com/phytium_embedded/phytium-free-rtos-sdk)
- [Phytium standalone SDK](https://gitee.com/phytium_embedded/phytium-standalone-sdk)
+
### 2.1 硬件配置方法
本例程支持的硬件平台包括
@@ -23,6 +23,7 @@
- D2000
- E2000D
- E2000Q
+- PHYTIUMPI
对应的配置项是,
@@ -30,47 +31,68 @@
- CONFIG_TARGET_D2000
- CONFIG_TARGET_E2000D
- CONFIG_TARGET_E2000Q
+- CONFIG_TARGET_PHYTIUMPI
### 2.2 SDK配置方法
本例程需要,
- 使能Shell
-- 使能Can
对应的配置项是,
- CONFIG_USE_LETTER_SHELL
-- CONFIG_FREERTOS_USE_CAN
-- CONFIG_USE_CAN
本例子已经提供好具体的编译指令,以下进行介绍:
+
- make 将目录下的工程进行编译
- make clean 将目录下的工程进行清理
- make image 将目录下的工程进行编译,并将生成的elf 复制到目标地址
- make list_kconfig 当前工程支持哪些配置文件
-- make load_kconfig LOAD_CONFIG_NAME= 将预设配置加载至工程中
- make menuconfig 配置目录下的参数变量
- make backup_kconfig 将目录下的sdkconfig 备份到./configs下
具体使用方法为:
+
- 在当前目录下
- 执行以上指令
### 2.3 构建和下载
->描述构建、烧录下载镜像的过程,列出相关的命令
+#### 2.3.1 构建过程
+
+- 在host侧完成配置
+
+> 配置成E2000D,对于其它平台,使用对于的默认配置,如E2000Q `make load_kconfig LOAD_CONFIG_NAME=e2000q_aarch64_demo_posix`
+
+- 选择目标平台
+
+```
+make load_kconfig LOAD_CONFIG_NAME=e2000d_aarch64_demo_posix
+```
+
+- 选择例程需要的配置
+
+```
+make menuconfig
+```
+
+- 编译并将编译出的镜像放置到tftp目录下
-[参考 freertos 使用说明](../../../docs/reference/usr/usage.md)
+```
+make image
+```
-#### 2.3.1 下载过程
+#### 2.3.2 下载过程
- host侧设置重启host侧tftp服务器
+
```
sudo service tftpd-hpa restart
```
- 开发板侧使用bootelf命令跳转
+
```
setenv ipaddr 192.168.4.20
setenv serverip 192.168.4.50
@@ -81,20 +103,21 @@ bootelf -p 0x90100000
### 2.4 输出与实验现象
-- 系统进入后,创建can初始化任务,创建定时发送任务,创建接收任务,并创建单次模式软件定时器
-
-
+- 系统进入后,输入 ``posix``查看指令说明
-- 定时器时间到,触发单次模式软件定时器的回调函数,删除发送和接收任务,去初始化can,删除软件定时器
+- 输入 ``posix thread``,启动线程的创建和等待测试
+
-
+- 输入 ``posix demo``,启动线程间的数据收发测试
+
-## 3. 如何解决问题
-- 使用can0和can1进行回环测试时,需要将can0和can1的H和L信号线分别进行短接
+- 测试任务能够能正常创建运行,输入 ``ps``查看任务状态正常,即测试正常
-## 4. 修改历史记录
+## 3. 如何解决问题
+- 需使用newlib c库进行编译支持
+## 4. 修改历史记录
diff --git a/example/system/posix/configs/d2000_aarch32_test_posix.config b/example/system/posix/configs/d2000_aarch32_test_posix.config
new file mode 100644
index 0000000000000000000000000000000000000000..e6121e7b5703b19d51b07934a9ab861f5d96dc1c
--- /dev/null
+++ b/example/system/posix/configs/d2000_aarch32_test_posix.config
@@ -0,0 +1,346 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+# CONFIG_ARCH_ARMV8_AARCH64 is not set
+CONFIG_ARCH_ARMV8_AARCH32=y
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH32=y
+CONFIG_ARCH_EXECUTION_STATE="aarch32"
+
+#
+# Fpu configuration
+#
+CONFIG_ARCH_FPU=y
+# CONFIG_ARCH_FPU_VFP_V3 is not set
+CONFIG_ARCH_FPU_VFP_V4=y
+CONFIG_ARM_DPFPU32=y
+# CONFIG_ARM_FPU_ABI_SOFT is not set
+CONFIG_ARM_NEON=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
+# end of Fpu configuration
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+# CONFIG_USE_L3CACHE is not set
+CONFIG_USE_MMU=y
+CONFIG_USE_AARCH64_L1_TO_AARCH32=y
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+# CONFIG_TARGET_E2000Q is not set
+# CONFIG_TARGET_E2000D is not set
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+CONFIG_TARGET_D2000=y
+CONFIG_SOC_NAME="d2000"
+CONFIG_SOC_CORE_NUM=8
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_BOARD_NAME="test"
+CONFIG_D2000_TEST_BOARD=y
+
+#
+# IO mux configuration when board start up
+#
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="posix"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_WARN is not set
+CONFIG_LOG_ERROR=y
+# CONFIG_LOG_NONE is not set
+# CONFIG_LOG_EXTRA_INFO is not set
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+CONFIG_ENABLE_IOCTRL=y
+# CONFIG_ENABLE_IOPAD is not set
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+# CONFIG_USE_GPIO is not set
+# CONFIG_USE_ETH is not set
+# CONFIG_USE_CAN is not set
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+# CONFIG_USE_SDMMC is not set
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+# CONFIG_CHECK_DEPS is not set
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+CONFIG_DEBUG_SYMBOLS=y
+# CONFIG_FRAME_POINTER is not set
+CONFIG_OUTPUT_ASM_DIS=y
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+# CONFIG_USE_COMPILE_CHAIN is not set
+CONFIG_USE_NEWLIB=y
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_SVC_STACK_SIZE=0x1000
+CONFIG_SYS_STACK_SIZE=0x1000
+CONFIG_IRQ_STACK_SIZE=0x1000
+CONFIG_ABORT_STACK_SIZE=0x1000
+CONFIG_FIQ_STACK_SIZE=0x1000
+CONFIG_UNDEF_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+# CONFIG_FREERTOS_USE_CAN is not set
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+# CONFIG_USE_LWIP is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+CONFIG_USE_TLSF=y
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=1
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+CONFIG_FREERTOS_USE_POSIX=y
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/posix/configs/d2000_aarch64_test_posix.config b/example/system/posix/configs/d2000_aarch64_test_posix.config
new file mode 100644
index 0000000000000000000000000000000000000000..43a3053177fa158f3c041b343b7b5bfb2cd0f994
--- /dev/null
+++ b/example/system/posix/configs/d2000_aarch64_test_posix.config
@@ -0,0 +1,344 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+CONFIG_ARCH_ARMV8_AARCH64=y
+# CONFIG_ARCH_ARMV8_AARCH32 is not set
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH64=y
+CONFIG_ARCH_EXECUTION_STATE="aarch64"
+
+#
+# Fpu configuration
+#
+CONFIG_ARM_NEON=y
+# end of Fpu configuration
+
+CONFIG_ARM_CRC=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_ARM_FLOAT_POINT=y
+# CONFIG_GCC_CODE_MODEL_TINY is not set
+CONFIG_GCC_CODE_MODEL_SMALL=y
+# CONFIG_GCC_CODE_MODEL_LARGE is not set
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+# CONFIG_USE_L3CACHE is not set
+CONFIG_USE_MMU=y
+CONFIG_BOOT_WITH_FLUSH_CACHE=y
+# CONFIG_MMU_DEBUG_PRINTS is not set
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+# CONFIG_TARGET_E2000Q is not set
+# CONFIG_TARGET_E2000D is not set
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+CONFIG_TARGET_D2000=y
+CONFIG_SOC_NAME="d2000"
+CONFIG_SOC_CORE_NUM=8
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_BOARD_NAME="test"
+CONFIG_D2000_TEST_BOARD=y
+
+#
+# IO mux configuration when board start up
+#
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="posix"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_WARN is not set
+CONFIG_LOG_ERROR=y
+# CONFIG_LOG_NONE is not set
+# CONFIG_LOG_EXTRA_INFO is not set
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+CONFIG_ENABLE_IOCTRL=y
+# CONFIG_ENABLE_IOPAD is not set
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+# CONFIG_USE_GPIO is not set
+# CONFIG_USE_ETH is not set
+# CONFIG_USE_CAN is not set
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+# CONFIG_USE_SDMMC is not set
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+# CONFIG_CHECK_DEPS is not set
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+CONFIG_DEBUG_SYMBOLS=y
+# CONFIG_FRAME_POINTER is not set
+CONFIG_OUTPUT_ASM_DIS=y
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+# CONFIG_USE_COMPILE_CHAIN is not set
+CONFIG_USE_NEWLIB=y
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_STACK_SIZE=0x400
+CONFIG_FPU_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+# CONFIG_FREERTOS_USE_CAN is not set
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+# CONFIG_USE_LWIP is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+CONFIG_USE_TLSF=y
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=1
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+CONFIG_FREERTOS_USE_POSIX=y
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/sdio/configs/e2000d_aarch32_demo_sdio.config b/example/system/posix/configs/e2000d_aarch32_demo_posix.config
similarity index 93%
rename from example/peripheral/sdio/configs/e2000d_aarch32_demo_sdio.config
rename to example/system/posix/configs/e2000d_aarch32_demo_posix.config
index 0201706e30830b713a7b5342da747a2e3166b044..225770b517cae5de92e2987dcffd9fc81b83e473 100644
--- a/example/peripheral/sdio/configs/e2000d_aarch32_demo_sdio.config
+++ b/example/system/posix/configs/e2000d_aarch32_demo_posix.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -89,7 +89,7 @@ CONFIG_BOARD_NAME="demo"
#
# Build project name
#
-CONFIG_TARGET_NAME="sdio"
+CONFIG_TARGET_NAME="posix"
# end of Build project name
# end of Board Configuration
@@ -102,7 +102,7 @@ CONFIG_TARGET_NAME="sdio"
# CONFIG_LOG_WARN is not set
CONFIG_LOG_ERROR=y
# CONFIG_LOG_NONE is not set
-CONFIG_LOG_EXTRA_INFO=y
+# CONFIG_LOG_EXTRA_INFO is not set
# CONFIG_LOG_DISPALY_CORE_NUM is not set
# CONFIG_BOOTUP_DEBUG_PRINTS is not set
CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
@@ -124,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,9 +138,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_I2C is not set
# CONFIG_USE_TIMER is not set
# CONFIG_USE_MIO is not set
-CONFIG_USE_SDMMC=y
-# CONFIG_ENABLE_FSDMMC is not set
-CONFIG_ENABLE_FSDIO=y
+# CONFIG_USE_SDMMC is not set
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
@@ -155,12 +151,13 @@ CONFIG_ENABLE_FSDIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
-CONFIG_CHECK_DEPS=y
+# CONFIG_CHECK_DEPS is not set
CONFIG_OUTPUT_BINARY=y
#
@@ -182,9 +179,9 @@ CONFIG_DEBUG_LINK_MAP=y
#
# CONFIG_WALL_WARNING_ERROR is not set
# CONFIG_STRICT_PROTOTYPES is not set
-# CONFIG_DEBUG_SYMBOLS is not set
+CONFIG_DEBUG_SYMBOLS=y
# CONFIG_FRAME_POINTER is not set
-# CONFIG_OUTPUT_ASM_DIS is not set
+CONFIG_OUTPUT_ASM_DIS=y
# CONFIG_ENABLE_WSHADOW is not set
# CONFIG_ENABLE_WUNDEF is not set
CONFIG_DOWNGRADE_DIAG_WARNING=y
@@ -193,8 +190,9 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
#
# Lib
#
-CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_COMPILE_CHAIN is not set
+CONFIG_USE_NEWLIB=y
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -323,15 +321,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-CONFIG_USE_SDMMC_CMD=y
-
-#
-# Sdmmc configuration
-#
-# CONFIG_SDMMC_USE_FSDMMC is not set
-CONFIG_SDMMC_USE_FSDIO=y
-# end of Sdmmc configuration
-
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -342,10 +331,11 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -358,11 +348,12 @@ CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
-CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=1
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+CONFIG_FREERTOS_USE_POSIX=y
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/posix/configs/e2000d_aarch64_demo_posix.config b/example/system/posix/configs/e2000d_aarch64_demo_posix.config
new file mode 100644
index 0000000000000000000000000000000000000000..b821a96f8f926bbc9fa620bbf03dd3430f4d8f9e
--- /dev/null
+++ b/example/system/posix/configs/e2000d_aarch64_demo_posix.config
@@ -0,0 +1,357 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+CONFIG_ARCH_ARMV8_AARCH64=y
+# CONFIG_ARCH_ARMV8_AARCH32 is not set
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH64=y
+CONFIG_ARCH_EXECUTION_STATE="aarch64"
+
+#
+# Fpu configuration
+#
+CONFIG_ARM_NEON=y
+# end of Fpu configuration
+
+CONFIG_ARM_CRC=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_ARM_FLOAT_POINT=y
+# CONFIG_GCC_CODE_MODEL_TINY is not set
+CONFIG_GCC_CODE_MODEL_SMALL=y
+# CONFIG_GCC_CODE_MODEL_LARGE is not set
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+CONFIG_BOOT_WITH_FLUSH_CACHE=y
+# CONFIG_MMU_DEBUG_PRINTS is not set
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+# CONFIG_TARGET_E2000Q is not set
+CONFIG_TARGET_E2000D=y
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="d"
+CONFIG_SOC_CORE_NUM=2
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_E2000D_DEMO_BOARD=y
+CONFIG_BOARD_NAME="demo"
+
+#
+# IO mux configuration when board start up
+#
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_ADC_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="posix"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_WARN is not set
+CONFIG_LOG_ERROR=y
+# CONFIG_LOG_NONE is not set
+# CONFIG_LOG_EXTRA_INFO is not set
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+# CONFIG_USE_GPIO is not set
+# CONFIG_USE_ETH is not set
+# CONFIG_USE_CAN is not set
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+# CONFIG_USE_SDMMC is not set
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+# CONFIG_CHECK_DEPS is not set
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+CONFIG_DEBUG_SYMBOLS=y
+# CONFIG_FRAME_POINTER is not set
+CONFIG_OUTPUT_ASM_DIS=y
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+# CONFIG_USE_COMPILE_CHAIN is not set
+CONFIG_USE_NEWLIB=y
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_STACK_SIZE=0x400
+CONFIG_FPU_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+# CONFIG_FREERTOS_USE_CAN is not set
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+# CONFIG_USE_LWIP is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+CONFIG_USE_TLSF=y
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=1
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+CONFIG_FREERTOS_USE_POSIX=y
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/sdio/configs/e2000q_aarch32_demo_sdio.config b/example/system/posix/configs/e2000q_aarch32_demo_posix.config
similarity index 93%
rename from example/peripheral/sdio/configs/e2000q_aarch32_demo_sdio.config
rename to example/system/posix/configs/e2000q_aarch32_demo_posix.config
index f311f9c340951df900aec04481d7e8444b5f1a0a..d24304f39a8f7deb9a65705eecc371ad3483efea 100644
--- a/example/peripheral/sdio/configs/e2000q_aarch32_demo_sdio.config
+++ b/example/system/posix/configs/e2000q_aarch32_demo_posix.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -88,7 +88,7 @@ CONFIG_E2000Q_DEMO_BOARD=y
#
# Build project name
#
-CONFIG_TARGET_NAME="sdio"
+CONFIG_TARGET_NAME="posix"
# end of Build project name
# end of Board Configuration
@@ -101,7 +101,7 @@ CONFIG_TARGET_NAME="sdio"
# CONFIG_LOG_WARN is not set
CONFIG_LOG_ERROR=y
# CONFIG_LOG_NONE is not set
-CONFIG_LOG_EXTRA_INFO=y
+# CONFIG_LOG_EXTRA_INFO is not set
# CONFIG_LOG_DISPALY_CORE_NUM is not set
# CONFIG_BOOTUP_DEBUG_PRINTS is not set
CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
@@ -123,8 +123,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -139,9 +137,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_I2C is not set
# CONFIG_USE_TIMER is not set
# CONFIG_USE_MIO is not set
-CONFIG_USE_SDMMC=y
-# CONFIG_ENABLE_FSDMMC is not set
-CONFIG_ENABLE_FSDIO=y
+# CONFIG_USE_SDMMC is not set
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
@@ -154,12 +150,13 @@ CONFIG_ENABLE_FSDIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
-CONFIG_CHECK_DEPS=y
+# CONFIG_CHECK_DEPS is not set
CONFIG_OUTPUT_BINARY=y
#
@@ -181,9 +178,9 @@ CONFIG_DEBUG_LINK_MAP=y
#
# CONFIG_WALL_WARNING_ERROR is not set
# CONFIG_STRICT_PROTOTYPES is not set
-# CONFIG_DEBUG_SYMBOLS is not set
+CONFIG_DEBUG_SYMBOLS=y
# CONFIG_FRAME_POINTER is not set
-# CONFIG_OUTPUT_ASM_DIS is not set
+CONFIG_OUTPUT_ASM_DIS=y
# CONFIG_ENABLE_WSHADOW is not set
# CONFIG_ENABLE_WUNDEF is not set
CONFIG_DOWNGRADE_DIAG_WARNING=y
@@ -192,8 +189,9 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
#
# Lib
#
-CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_COMPILE_CHAIN is not set
+CONFIG_USE_NEWLIB=y
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -322,15 +320,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-CONFIG_USE_SDMMC_CMD=y
-
-#
-# Sdmmc configuration
-#
-# CONFIG_SDMMC_USE_FSDMMC is not set
-CONFIG_SDMMC_USE_FSDIO=y
-# end of Sdmmc configuration
-
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -341,10 +330,11 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -357,11 +347,12 @@ CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
-CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=1
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+CONFIG_FREERTOS_USE_POSIX=y
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/sdio/configs/e2000q_aarch64_demo_sdio.config b/example/system/posix/configs/e2000q_aarch64_demo_posix.config
similarity index 92%
rename from example/peripheral/sdio/configs/e2000q_aarch64_demo_sdio.config
rename to example/system/posix/configs/e2000q_aarch64_demo_posix.config
index 98f22b14ef8c1c5334d820a99561abefc1f86378..884c1d38e24be7f1f3acd6a419d6a31a426aac7c 100644
--- a/example/peripheral/sdio/configs/e2000q_aarch64_demo_sdio.config
+++ b/example/system/posix/configs/e2000q_aarch64_demo_posix.config
@@ -37,7 +37,7 @@ CONFIG_GCC_CODE_MODEL_SMALL=y
CONFIG_USE_CACHE=y
CONFIG_USE_MMU=y
-# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
+CONFIG_BOOT_WITH_FLUSH_CACHE=y
# CONFIG_MMU_DEBUG_PRINTS is not set
# end of Arm architecture configuration
# end of Arch configuration
@@ -90,7 +90,7 @@ CONFIG_E2000Q_DEMO_BOARD=y
#
# Build project name
#
-CONFIG_TARGET_NAME="sdio"
+CONFIG_TARGET_NAME="posix"
# end of Build project name
# end of Board Configuration
@@ -103,7 +103,7 @@ CONFIG_TARGET_NAME="sdio"
# CONFIG_LOG_WARN is not set
CONFIG_LOG_ERROR=y
# CONFIG_LOG_NONE is not set
-CONFIG_LOG_EXTRA_INFO=y
+# CONFIG_LOG_EXTRA_INFO is not set
# CONFIG_LOG_DISPALY_CORE_NUM is not set
# CONFIG_BOOTUP_DEBUG_PRINTS is not set
CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
@@ -125,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -141,9 +139,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_I2C is not set
# CONFIG_USE_TIMER is not set
# CONFIG_USE_MIO is not set
-CONFIG_USE_SDMMC=y
-# CONFIG_ENABLE_FSDMMC is not set
-CONFIG_ENABLE_FSDIO=y
+# CONFIG_USE_SDMMC is not set
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
@@ -156,12 +152,13 @@ CONFIG_ENABLE_FSDIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
-CONFIG_CHECK_DEPS=y
+# CONFIG_CHECK_DEPS is not set
CONFIG_OUTPUT_BINARY=y
#
@@ -183,9 +180,9 @@ CONFIG_DEBUG_LINK_MAP=y
#
# CONFIG_WALL_WARNING_ERROR is not set
# CONFIG_STRICT_PROTOTYPES is not set
-# CONFIG_DEBUG_SYMBOLS is not set
+CONFIG_DEBUG_SYMBOLS=y
# CONFIG_FRAME_POINTER is not set
-# CONFIG_OUTPUT_ASM_DIS is not set
+CONFIG_OUTPUT_ASM_DIS=y
# CONFIG_ENABLE_WSHADOW is not set
# CONFIG_ENABLE_WUNDEF is not set
CONFIG_DOWNGRADE_DIAG_WARNING=y
@@ -194,8 +191,9 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
#
# Lib
#
-CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_COMPILE_CHAIN is not set
+CONFIG_USE_NEWLIB=y
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -320,15 +318,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-CONFIG_USE_SDMMC_CMD=y
-
-#
-# Sdmmc configuration
-#
-# CONFIG_SDMMC_USE_FSDMMC is not set
-CONFIG_SDMMC_USE_FSDIO=y
-# end of Sdmmc configuration
-
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -339,10 +328,11 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -355,11 +345,12 @@ CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
-CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=1
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+CONFIG_FREERTOS_USE_POSIX=y
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/posix/configs/ft2004_aarch32_dsk_posix.config b/example/system/posix/configs/ft2004_aarch32_dsk_posix.config
new file mode 100644
index 0000000000000000000000000000000000000000..82935f2eb23438cbf695776748db715fe5a92e37
--- /dev/null
+++ b/example/system/posix/configs/ft2004_aarch32_dsk_posix.config
@@ -0,0 +1,346 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+# CONFIG_ARCH_ARMV8_AARCH64 is not set
+CONFIG_ARCH_ARMV8_AARCH32=y
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH32=y
+CONFIG_ARCH_EXECUTION_STATE="aarch32"
+
+#
+# Fpu configuration
+#
+CONFIG_ARCH_FPU=y
+# CONFIG_ARCH_FPU_VFP_V3 is not set
+CONFIG_ARCH_FPU_VFP_V4=y
+CONFIG_ARM_DPFPU32=y
+# CONFIG_ARM_FPU_ABI_SOFT is not set
+CONFIG_ARM_NEON=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
+# end of Fpu configuration
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+# CONFIG_USE_L3CACHE is not set
+CONFIG_USE_MMU=y
+CONFIG_USE_AARCH64_L1_TO_AARCH32=y
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+# CONFIG_TARGET_E2000Q is not set
+# CONFIG_TARGET_E2000D is not set
+# CONFIG_TARGET_E2000S is not set
+CONFIG_TARGET_FT2004=y
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="ft2004"
+CONFIG_SOC_CORE_NUM=4
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_BOARD_NAME="dsk"
+CONFIG_FT2004_DSK_BOARD=y
+
+#
+# IO mux configuration when board start up
+#
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="posix"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_WARN is not set
+CONFIG_LOG_ERROR=y
+# CONFIG_LOG_NONE is not set
+# CONFIG_LOG_EXTRA_INFO is not set
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+CONFIG_ENABLE_IOCTRL=y
+# CONFIG_ENABLE_IOPAD is not set
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+# CONFIG_USE_GPIO is not set
+# CONFIG_USE_ETH is not set
+# CONFIG_USE_CAN is not set
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+# CONFIG_USE_SDMMC is not set
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+# CONFIG_CHECK_DEPS is not set
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+CONFIG_DEBUG_SYMBOLS=y
+# CONFIG_FRAME_POINTER is not set
+CONFIG_OUTPUT_ASM_DIS=y
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+# CONFIG_USE_COMPILE_CHAIN is not set
+CONFIG_USE_NEWLIB=y
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_SVC_STACK_SIZE=0x1000
+CONFIG_SYS_STACK_SIZE=0x1000
+CONFIG_IRQ_STACK_SIZE=0x1000
+CONFIG_ABORT_STACK_SIZE=0x1000
+CONFIG_FIQ_STACK_SIZE=0x1000
+CONFIG_UNDEF_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+# CONFIG_FREERTOS_USE_CAN is not set
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+# CONFIG_USE_LWIP is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+CONFIG_USE_TLSF=y
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=1
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+CONFIG_FREERTOS_USE_POSIX=y
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/can/sdkconfig b/example/system/posix/configs/ft2004_aarch64_dsk_posix.config
similarity index 92%
rename from example/peripheral/can/sdkconfig
rename to example/system/posix/configs/ft2004_aarch64_dsk_posix.config
index 8607926ba888d2ff373a2fe82c82b834e0dbec32..53fd065693b1f1aed86f46e7e1f11abb0b4d81d1 100644
--- a/example/peripheral/can/sdkconfig
+++ b/example/system/posix/configs/ft2004_aarch64_dsk_posix.config
@@ -38,7 +38,7 @@ CONFIG_GCC_CODE_MODEL_SMALL=y
CONFIG_USE_CACHE=y
# CONFIG_USE_L3CACHE is not set
CONFIG_USE_MMU=y
-# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
+CONFIG_BOOT_WITH_FLUSH_CACHE=y
# CONFIG_MMU_DEBUG_PRINTS is not set
# end of Arm architecture configuration
# end of Arch configuration
@@ -78,7 +78,7 @@ CONFIG_FT2004_DSK_BOARD=y
#
# Build project name
#
-CONFIG_TARGET_NAME="can"
+CONFIG_TARGET_NAME="posix"
# end of Build project name
# end of Board Configuration
@@ -87,9 +87,9 @@ CONFIG_TARGET_NAME="can"
#
# CONFIG_LOG_VERBOS is not set
# CONFIG_LOG_DEBUG is not set
-CONFIG_LOG_INFO=y
+# CONFIG_LOG_INFO is not set
# CONFIG_LOG_WARN is not set
-# CONFIG_LOG_ERROR is not set
+CONFIG_LOG_ERROR=y
# CONFIG_LOG_NONE is not set
# CONFIG_LOG_EXTRA_INFO is not set
# CONFIG_LOG_DISPALY_CORE_NUM is not set
@@ -113,8 +113,6 @@ CONFIG_ENABLE_IOCTRL=y
# CONFIG_ENABLE_IOPAD is not set
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -125,14 +123,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_GPIO is not set
# CONFIG_USE_ETH is not set
-CONFIG_USE_CAN=y
-
-#
-# CAN Configuration
-#
-CONFIG_USE_FCAN=y
-# end of CAN Configuration
-
+# CONFIG_USE_CAN is not set
# CONFIG_USE_I2C is not set
# CONFIG_USE_TIMER is not set
# CONFIG_USE_MIO is not set
@@ -149,12 +140,13 @@ CONFIG_USE_FCAN=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
-CONFIG_CHECK_DEPS=y
+# CONFIG_CHECK_DEPS is not set
CONFIG_OUTPUT_BINARY=y
#
@@ -176,9 +168,9 @@ CONFIG_DEBUG_LINK_MAP=y
#
# CONFIG_WALL_WARNING_ERROR is not set
# CONFIG_STRICT_PROTOTYPES is not set
-# CONFIG_DEBUG_SYMBOLS is not set
+CONFIG_DEBUG_SYMBOLS=y
# CONFIG_FRAME_POINTER is not set
-# CONFIG_OUTPUT_ASM_DIS is not set
+CONFIG_OUTPUT_ASM_DIS=y
# CONFIG_ENABLE_WSHADOW is not set
# CONFIG_ENABLE_WUNDEF is not set
CONFIG_DOWNGRADE_DIAG_WARNING=y
@@ -187,8 +179,9 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
#
# Lib
#
-CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_COMPILE_CHAIN is not set
+CONFIG_USE_NEWLIB=y
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -269,7 +262,7 @@ CONFIG_FREERTOS_USE_UART=y
#
# Freertos Can Drivers
#
-CONFIG_FREERTOS_USE_CAN=y
+# CONFIG_FREERTOS_USE_CAN is not set
# end of Freertos Can Drivers
#
@@ -313,21 +306,21 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
# CONFIG_USE_FATFS_0_1_4 is not set
-# CONFIG_USE_TLSF is not set
+CONFIG_USE_TLSF=y
# CONFIG_USE_SPIFFS is not set
# CONFIG_USE_LITTLE_FS is not set
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -340,11 +333,12 @@ CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
-CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=1
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+CONFIG_FREERTOS_USE_POSIX=y
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/sdio/configs/phytiumpi_aarch32_firefly_sdio.config b/example/system/posix/configs/phytiumpi_aarch32_firefly_posix.config
similarity index 93%
rename from example/peripheral/sdio/configs/phytiumpi_aarch32_firefly_sdio.config
rename to example/system/posix/configs/phytiumpi_aarch32_firefly_posix.config
index 6fd9ee2b2f1d0a35379cf90819f4b1b472a6f211..0a5fb4ea78c8c33ed86abcac4c86d9c28af51dc8 100644
--- a/example/peripheral/sdio/configs/phytiumpi_aarch32_firefly_sdio.config
+++ b/example/system/posix/configs/phytiumpi_aarch32_firefly_posix.config
@@ -24,13 +24,13 @@ CONFIG_ARCH_EXECUTION_STATE="aarch32"
#
# Fpu configuration
#
+CONFIG_ARCH_FPU=y
# CONFIG_ARCH_FPU_VFP_V3 is not set
CONFIG_ARCH_FPU_VFP_V4=y
CONFIG_ARM_DPFPU32=y
# CONFIG_ARM_FPU_ABI_SOFT is not set
-CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
CONFIG_ARM_NEON=y
-CONFIG_ARCH_FPU=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
# end of Fpu configuration
# end of Compiler configuration
@@ -87,7 +87,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
-CONFIG_TARGET_NAME="sdio"
+CONFIG_TARGET_NAME="posix"
# end of Build project name
# end of Board Configuration
@@ -100,7 +100,7 @@ CONFIG_TARGET_NAME="sdio"
# CONFIG_LOG_WARN is not set
CONFIG_LOG_ERROR=y
# CONFIG_LOG_NONE is not set
-CONFIG_LOG_EXTRA_INFO=y
+# CONFIG_LOG_EXTRA_INFO is not set
# CONFIG_LOG_DISPALY_CORE_NUM is not set
# CONFIG_BOOTUP_DEBUG_PRINTS is not set
CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
@@ -122,8 +122,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -138,9 +136,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_I2C is not set
# CONFIG_USE_TIMER is not set
# CONFIG_USE_MIO is not set
-CONFIG_USE_SDMMC=y
-# CONFIG_ENABLE_FSDMMC is not set
-CONFIG_ENABLE_FSDIO=y
+# CONFIG_USE_SDMMC is not set
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
@@ -153,12 +149,13 @@ CONFIG_ENABLE_FSDIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
-CONFIG_CHECK_DEPS=y
+# CONFIG_CHECK_DEPS is not set
CONFIG_OUTPUT_BINARY=y
#
@@ -180,9 +177,9 @@ CONFIG_DEBUG_LINK_MAP=y
#
# CONFIG_WALL_WARNING_ERROR is not set
# CONFIG_STRICT_PROTOTYPES is not set
-# CONFIG_DEBUG_SYMBOLS is not set
+CONFIG_DEBUG_SYMBOLS=y
# CONFIG_FRAME_POINTER is not set
-# CONFIG_OUTPUT_ASM_DIS is not set
+CONFIG_OUTPUT_ASM_DIS=y
# CONFIG_ENABLE_WSHADOW is not set
# CONFIG_ENABLE_WUNDEF is not set
CONFIG_DOWNGRADE_DIAG_WARNING=y
@@ -191,8 +188,9 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
#
# Lib
#
-CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_COMPILE_CHAIN is not set
+CONFIG_USE_NEWLIB=y
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -321,15 +319,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-CONFIG_USE_SDMMC_CMD=y
-
-#
-# Sdmmc configuration
-#
-# CONFIG_SDMMC_USE_FSDMMC is not set
-CONFIG_SDMMC_USE_FSDIO=y
-# end of Sdmmc configuration
-
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -340,10 +329,11 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -356,11 +346,12 @@ CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
-CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=1
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+CONFIG_FREERTOS_USE_POSIX=y
+# end of FreeRTOS Kernel Configuration
diff --git a/example/peripheral/sdio/configs/phytiumpi_aarch64_firefly_sdio.config b/example/system/posix/configs/phytiumpi_aarch64_firefly_posix.config
similarity index 92%
rename from example/peripheral/sdio/configs/phytiumpi_aarch64_firefly_sdio.config
rename to example/system/posix/configs/phytiumpi_aarch64_firefly_posix.config
index 3e43f979f643e89dded55a8820db0a83e9e3e794..123290845a0c28d7419ebe39d533edec34197c75 100644
--- a/example/peripheral/sdio/configs/phytiumpi_aarch64_firefly_sdio.config
+++ b/example/system/posix/configs/phytiumpi_aarch64_firefly_posix.config
@@ -37,7 +37,7 @@ CONFIG_GCC_CODE_MODEL_SMALL=y
CONFIG_USE_CACHE=y
CONFIG_USE_MMU=y
-# CONFIG_BOOT_WITH_FLUSH_CACHE is not set
+CONFIG_BOOT_WITH_FLUSH_CACHE=y
# CONFIG_MMU_DEBUG_PRINTS is not set
# end of Arm architecture configuration
# end of Arch configuration
@@ -89,7 +89,7 @@ CONFIG_FIREFLY_DEMO_BOARD=y
#
# Build project name
#
-CONFIG_TARGET_NAME="sdio"
+CONFIG_TARGET_NAME="posix"
# end of Build project name
# end of Board Configuration
@@ -102,7 +102,7 @@ CONFIG_TARGET_NAME="sdio"
# CONFIG_LOG_WARN is not set
CONFIG_LOG_ERROR=y
# CONFIG_LOG_NONE is not set
-CONFIG_LOG_EXTRA_INFO=y
+# CONFIG_LOG_EXTRA_INFO is not set
# CONFIG_LOG_DISPALY_CORE_NUM is not set
# CONFIG_BOOTUP_DEBUG_PRINTS is not set
CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
@@ -124,8 +124,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -140,9 +138,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_I2C is not set
# CONFIG_USE_TIMER is not set
# CONFIG_USE_MIO is not set
-CONFIG_USE_SDMMC=y
-# CONFIG_ENABLE_FSDMMC is not set
-CONFIG_ENABLE_FSDIO=y
+# CONFIG_USE_SDMMC is not set
# CONFIG_USE_PCIE is not set
# CONFIG_USE_WDT is not set
# CONFIG_USE_DMA is not set
@@ -155,12 +151,13 @@ CONFIG_ENABLE_FSDIO=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
# Build setup
#
-CONFIG_CHECK_DEPS=y
+# CONFIG_CHECK_DEPS is not set
CONFIG_OUTPUT_BINARY=y
#
@@ -182,9 +179,9 @@ CONFIG_DEBUG_LINK_MAP=y
#
# CONFIG_WALL_WARNING_ERROR is not set
# CONFIG_STRICT_PROTOTYPES is not set
-# CONFIG_DEBUG_SYMBOLS is not set
+CONFIG_DEBUG_SYMBOLS=y
# CONFIG_FRAME_POINTER is not set
-# CONFIG_OUTPUT_ASM_DIS is not set
+CONFIG_OUTPUT_ASM_DIS=y
# CONFIG_ENABLE_WSHADOW is not set
# CONFIG_ENABLE_WUNDEF is not set
CONFIG_DOWNGRADE_DIAG_WARNING=y
@@ -193,8 +190,9 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
#
# Lib
#
-CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_COMPILE_CHAIN is not set
+CONFIG_USE_NEWLIB=y
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -319,15 +317,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-CONFIG_USE_SDMMC_CMD=y
-
-#
-# Sdmmc configuration
-#
-# CONFIG_SDMMC_USE_FSDMMC is not set
-CONFIG_SDMMC_USE_FSDIO=y
-# end of Sdmmc configuration
-
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -338,10 +327,11 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -354,11 +344,12 @@ CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
-CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=1
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+CONFIG_FREERTOS_USE_POSIX=y
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/posix/figs/posix_demo.png b/example/system/posix/figs/posix_demo.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f60061cb9bd535a541b82b7f9d2e598c1bf3326
Binary files /dev/null and b/example/system/posix/figs/posix_demo.png differ
diff --git a/example/system/posix/figs/posix_thread.png b/example/system/posix/figs/posix_thread.png
new file mode 100644
index 0000000000000000000000000000000000000000..d8588c1e0d3a6e4fb604658966e63f6c6cd44ab5
Binary files /dev/null and b/example/system/posix/figs/posix_thread.png differ
diff --git a/example/system/posix/inc/posix_example.h b/example/system/posix/inc/posix_example.h
new file mode 100644
index 0000000000000000000000000000000000000000..429373a7e0391702282cc33ec1eb4241953d91e2
--- /dev/null
+++ b/example/system/posix/inc/posix_example.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright : (C) 2023 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: posix_example.h
+ * Date: 2023-10-12 10:42:40
+ * LastEditTime: 2023-10-12 10:42:40
+ * Description: This file is for freertos posix function define
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 wangxiaodong 2023/10/12 first commit
+ */
+
+
+#ifndef POSIX_EXAMPLE_H
+#define POSIX_EXAMPLE_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/* POSIX Demo task */
+void CreatePOSIXDemoTasks(void);
+void CreateThreadDemoTasks(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // !
\ No newline at end of file
diff --git a/example/system/posix/main.c b/example/system/posix/main.c
new file mode 100644
index 0000000000000000000000000000000000000000..6c611a23f8573e5629eab517d606b4604fd49c5a
--- /dev/null
+++ b/example/system/posix/main.c
@@ -0,0 +1,50 @@
+/*
+ * Copyright : (C) 2022 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: main.c
+ * Date: 2022-02-24 13:42:19
+ * LastEditTime: 2022-03-21 17:02:53
+ * Description: This file is for providing a template main.c file when creating new freertos examples.
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 wangxiaodong 2022/11/1 init commit
+ */
+#include
+#include
+#include "FreeRTOS.h"
+#include "task.h"
+#include "ftypes.h"
+#include "shell.h"
+#include "shell_port.h"
+
+int main()
+{
+ printf("Hello main func,FT Date: %s, Time: %s\n", __DATE__, __TIME__);
+ BaseType_t xReturn = pdPASS;
+
+ xReturn = LSUserShellTask();
+ if (xReturn != pdPASS)
+ {
+ goto FAIL_EXIT;
+ }
+
+ vTaskStartScheduler(); /* 启动任务,开启调度 */
+
+ while (1); /* 正常不会执行到这里 */
+
+FAIL_EXIT:
+ printf("Failed,the xReturn value is 0x%x. \r\n", xReturn);
+ return 0;
+}
\ No newline at end of file
diff --git a/example/system/posix/makefile b/example/system/posix/makefile
new file mode 100644
index 0000000000000000000000000000000000000000..334a579eae1535d082057450544b58d856b7d533
--- /dev/null
+++ b/example/system/posix/makefile
@@ -0,0 +1,29 @@
+PROJECT_DIR = $(CURDIR)
+FREERTOS_SDK_DIR = $(CURDIR)/../../..
+
+
+# # 设置启动镜像名
+BOOT_IMG_NAME ?= freertos
+
+USER_CSRC := main.c
+USER_CSRC += $(wildcard src/*.c) #添加src文件目录的所有C文件
+
+USER_ASRC := #添加汇编代码
+USER_CXXSRC := #添加C++代码
+
+#添加 .h 文件所在目录
+USER_INCLUDE := $(PROJECT_DIR) \
+ $(PROJECT_DIR)/inc
+
+include $(FREERTOS_SDK_DIR)/tools/makeall.mk
+
+USR_BOOT_DIR ?= /mnt/d/tftboot
+
+image:
+ $(MAKE) clean
+ $(MAKE) all -j
+ @cp ./$(IMAGE_OUT_NAME).elf $(USR_BOOT_DIR)/$(BOOT_IMG_NAME).elf
+ifdef CONFIG_OUTPUT_BINARY
+ @cp ./$(IMAGE_OUT_NAME).bin $(USR_BOOT_DIR)/$(BOOT_IMG_NAME).bin
+endif
+ @ls $(USR_BOOT_DIR)/$(BOOT_IMG_NAME).* -l
\ No newline at end of file
diff --git a/example/system/posix/sdkconfig b/example/system/posix/sdkconfig
new file mode 100644
index 0000000000000000000000000000000000000000..d24304f39a8f7deb9a65705eecc371ad3483efea
--- /dev/null
+++ b/example/system/posix/sdkconfig
@@ -0,0 +1,358 @@
+CONFIG_USE_FREERTOS=y
+
+#
+# Arch configuration
+#
+CONFIG_TARGET_ARMv8=y
+CONFIG_ARCH_NAME="armv8"
+
+#
+# Arm architecture configuration
+#
+# CONFIG_ARCH_ARMV8_AARCH64 is not set
+CONFIG_ARCH_ARMV8_AARCH32=y
+
+#
+# Compiler configuration
+#
+CONFIG_ARM_GCC_SELECT=y
+# CONFIG_ARM_CLANG_SELECT is not set
+CONFIG_TOOLCHAIN_NAME="gcc"
+CONFIG_TARGET_ARMV8_AARCH32=y
+CONFIG_ARCH_EXECUTION_STATE="aarch32"
+
+#
+# Fpu configuration
+#
+CONFIG_ARCH_FPU=y
+# CONFIG_ARCH_FPU_VFP_V3 is not set
+CONFIG_ARCH_FPU_VFP_V4=y
+CONFIG_ARM_DPFPU32=y
+# CONFIG_ARM_FPU_ABI_SOFT is not set
+CONFIG_ARM_NEON=y
+CONFIG_ARM_FPU_SYMBOL="crypto-neon-fp-armv8"
+# end of Fpu configuration
+# end of Compiler configuration
+
+CONFIG_USE_CACHE=y
+CONFIG_USE_MMU=y
+CONFIG_USE_AARCH64_L1_TO_AARCH32=y
+# end of Arm architecture configuration
+# end of Arch configuration
+
+#
+# Soc configuration
+#
+# CONFIG_TARGET_PHYTIUMPI is not set
+CONFIG_TARGET_E2000Q=y
+# CONFIG_TARGET_E2000D is not set
+# CONFIG_TARGET_E2000S is not set
+# CONFIG_TARGET_FT2004 is not set
+# CONFIG_TARGET_D2000 is not set
+CONFIG_SOC_NAME="e2000"
+CONFIG_TARGET_TYPE_NAME="q"
+CONFIG_SOC_CORE_NUM=4
+CONFIG_F32BIT_MEMORY_ADDRESS=0x80000000
+CONFIG_F32BIT_MEMORY_LENGTH=0x80000000
+CONFIG_F64BIT_MEMORY_ADDRESS=0x2000000000
+CONFIG_F64BIT_MEMORY_LENGTH=0x800000000
+CONFIG_TARGET_E2000=y
+# CONFIG_USE_SPINLOCK is not set
+CONFIG_DEFAULT_DEBUG_PRINT_UART1=y
+# CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set
+# CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set
+# end of Soc configuration
+
+#
+# Board Configuration
+#
+CONFIG_BOARD_NAME="demo"
+# CONFIG_USE_SPI_IOPAD is not set
+# CONFIG_USE_GPIO_IOPAD is not set
+# CONFIG_USE_CAN_IOPAD is not set
+# CONFIG_USE_QSPI_IOPAD is not set
+# CONFIG_USE_PWM_IOPAD is not set
+# CONFIG_USE_MIO_IOPAD is not set
+# CONFIG_USE_TACHO_IOPAD is not set
+# CONFIG_USE_UART_IOPAD is not set
+# CONFIG_USE_THIRD_PARTY_IOPAD is not set
+CONFIG_E2000Q_DEMO_BOARD=y
+
+#
+# IO mux configuration when board start up
+#
+# end of IO mux configuration when board start up
+
+# CONFIG_CUS_DEMO_BOARD is not set
+
+#
+# Build project name
+#
+CONFIG_TARGET_NAME="posix"
+# end of Build project name
+# end of Board Configuration
+
+#
+# Sdk common configuration
+#
+# CONFIG_LOG_VERBOS is not set
+# CONFIG_LOG_DEBUG is not set
+# CONFIG_LOG_INFO is not set
+# CONFIG_LOG_WARN is not set
+CONFIG_LOG_ERROR=y
+# CONFIG_LOG_NONE is not set
+# CONFIG_LOG_EXTRA_INFO is not set
+# CONFIG_LOG_DISPALY_CORE_NUM is not set
+# CONFIG_BOOTUP_DEBUG_PRINTS is not set
+CONFIG_USE_DEFAULT_INTERRUPT_CONFIG=y
+CONFIG_INTERRUPT_ROLE_MASTER=y
+# CONFIG_INTERRUPT_ROLE_SLAVE is not set
+# end of Sdk common configuration
+
+#
+# Image information configuration
+#
+# CONFIG_IMAGE_INFO is not set
+# end of Image information configuration
+
+#
+# Drivers configuration
+#
+CONFIG_USE_IOMUX=y
+# CONFIG_ENABLE_IOCTRL is not set
+CONFIG_ENABLE_IOPAD=y
+# CONFIG_USE_SPI is not set
+# CONFIG_USE_QSPI is not set
+CONFIG_USE_SERIAL=y
+
+#
+# Usart Configuration
+#
+CONFIG_ENABLE_Pl011_UART=y
+# end of Usart Configuration
+
+# CONFIG_USE_GPIO is not set
+# CONFIG_USE_ETH is not set
+# CONFIG_USE_CAN is not set
+# CONFIG_USE_I2C is not set
+# CONFIG_USE_TIMER is not set
+# CONFIG_USE_MIO is not set
+# CONFIG_USE_SDMMC is not set
+# CONFIG_USE_PCIE is not set
+# CONFIG_USE_WDT is not set
+# CONFIG_USE_DMA is not set
+# CONFIG_USE_NAND is not set
+# CONFIG_USE_RTC is not set
+# CONFIG_USE_SATA is not set
+# CONFIG_USE_USB is not set
+# CONFIG_USE_ADC is not set
+# CONFIG_USE_PWM is not set
+# CONFIG_USE_IPC is not set
+# CONFIG_USE_MEDIA is not set
+# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
+# end of Drivers configuration
+
+#
+# Build setup
+#
+# CONFIG_CHECK_DEPS is not set
+CONFIG_OUTPUT_BINARY=y
+
+#
+# Optimization options
+#
+# CONFIG_DEBUG_NOOPT is not set
+# CONFIG_DEBUG_CUSTOMOPT is not set
+CONFIG_DEBUG_FULLOPT=y
+# CONFIG_DEBUG_ENABLE_ALL_WARNING is not set
+CONFIG_DEBUG_OPT_UNUSED_SECTIONS=y
+CONFIG_DEBUG_LINK_MAP=y
+# CONFIG_CCACHE is not set
+# CONFIG_ARCH_COVERAGE is not set
+# CONFIG_LTO_FULL is not set
+# end of Optimization options
+
+#
+# Debug options
+#
+# CONFIG_WALL_WARNING_ERROR is not set
+# CONFIG_STRICT_PROTOTYPES is not set
+CONFIG_DEBUG_SYMBOLS=y
+# CONFIG_FRAME_POINTER is not set
+CONFIG_OUTPUT_ASM_DIS=y
+# CONFIG_ENABLE_WSHADOW is not set
+# CONFIG_ENABLE_WUNDEF is not set
+CONFIG_DOWNGRADE_DIAG_WARNING=y
+# end of Debug options
+
+#
+# Lib
+#
+# CONFIG_USE_COMPILE_CHAIN is not set
+CONFIG_USE_NEWLIB=y
+# CONFIG_USE_USER_DEFINED is not set
+# end of Lib
+
+# CONFIG_ENABLE_CXX is not set
+
+#
+# Linker Options
+#
+CONFIG_DEFAULT_LINKER_SCRIPT=y
+# CONFIG_USER_DEFINED_LD is not set
+CONFIG_IMAGE_LOAD_ADDRESS=0x80100000
+CONFIG_IMAGE_MAX_LENGTH=0x1000000
+CONFIG_HEAP_SIZE=1
+CONFIG_SVC_STACK_SIZE=0x1000
+CONFIG_SYS_STACK_SIZE=0x1000
+CONFIG_IRQ_STACK_SIZE=0x1000
+CONFIG_ABORT_STACK_SIZE=0x1000
+CONFIG_FIQ_STACK_SIZE=0x1000
+CONFIG_UNDEF_STACK_SIZE=0x1000
+# end of Linker Options
+# end of Build setup
+
+#
+# Component Configuration
+#
+
+#
+# Freertos Uart Drivers
+#
+CONFIG_FREERTOS_USE_UART=y
+# end of Freertos Uart Drivers
+
+#
+# Freertos Pwm Drivers
+#
+# CONFIG_FREERTOS_USE_PWM is not set
+# end of Freertos Pwm Drivers
+
+#
+# Freertos Qspi Drivers
+#
+# CONFIG_FREERTOS_USE_QSPI is not set
+# end of Freertos Qspi Drivers
+
+#
+# Freertos Wdt Drivers
+#
+# CONFIG_FREERTOS_USE_WDT is not set
+# end of Freertos Wdt Drivers
+
+#
+# Freertos Eth Drivers
+#
+# CONFIG_FREERTOS_USE_XMAC is not set
+# CONFIG_FREERTOS_USE_GMAC is not set
+# end of Freertos Eth Drivers
+
+#
+# Freertos Gpio Drivers
+#
+# CONFIG_FREERTOS_USE_GPIO is not set
+# end of Freertos Gpio Drivers
+
+#
+# Freertos Spim Drivers
+#
+# CONFIG_FREERTOS_USE_FSPIM is not set
+# end of Freertos Spim Drivers
+
+#
+# Freertos DMA Drivers
+#
+# CONFIG_FREERTOS_USE_FDDMA is not set
+# CONFIG_FREERTOS_USE_FGDMA is not set
+# end of Freertos DMA Drivers
+
+#
+# Freertos Adc Drivers
+#
+# CONFIG_FREERTOS_USE_ADC is not set
+# end of Freertos Adc Drivers
+
+#
+# Freertos Can Drivers
+#
+# CONFIG_FREERTOS_USE_CAN is not set
+# end of Freertos Can Drivers
+
+#
+# Freertos I2c Drivers
+#
+# CONFIG_FREERTOS_USE_I2C is not set
+# end of Freertos I2c Drivers
+
+#
+# Freertos Mio Drivers
+#
+# CONFIG_FREERTOS_USE_MIO is not set
+# end of Freertos Mio Drivers
+
+#
+# Freertos Timer Drivers
+#
+# CONFIG_FREERTOS_USE_TIMER is not set
+# end of Freertos Timer Drivers
+
+#
+# Freertos Media Drivers
+#
+# CONFIG_FREERTOS_USE_MEDIA is not set
+# end of Freertos Media Drivers
+# end of Component Configuration
+
+#
+# Third-party configuration
+#
+# CONFIG_USE_LWIP is not set
+CONFIG_USE_LETTER_SHELL=y
+
+#
+# Letter Shell Configuration
+#
+CONFIG_LS_PL011_UART=y
+CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set
+# CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set
+# end of Letter Shell Configuration
+
+# CONFIG_USE_AMP is not set
+# CONFIG_USE_YMODEM is not set
+# CONFIG_USE_SFUD is not set
+CONFIG_USE_BACKTRACE=y
+# CONFIG_USE_FATFS_0_1_4 is not set
+CONFIG_USE_TLSF=y
+# CONFIG_USE_SPIFFS is not set
+# CONFIG_USE_LITTLE_FS is not set
+# CONFIG_USE_LVGL is not set
+# CONFIG_USE_FREEMODBUS is not set
+# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
+# end of Third-party configuration
+
+#
+# FreeRTOS Kernel Configuration
+#
+CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
+CONFIG_FREERTOS_HZ=1000
+CONFIG_FREERTOS_MAX_PRIORITIES=32
+CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES=13
+CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES=11
+CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
+CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE=1024
+CONFIG_FREERTOS_MAX_TASK_NAME_LEN=32
+CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
+CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
+CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
+CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=1
+CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
+CONFIG_FREERTOS_USE_TRACE_FACILITY=y
+CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
+# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
+CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
+CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
+CONFIG_FREERTOS_USE_POSIX=y
+# end of FreeRTOS Kernel Configuration
diff --git a/example/system/posix/sdkconfig.h b/example/system/posix/sdkconfig.h
new file mode 100644
index 0000000000000000000000000000000000000000..efd871819d06976c882251bbdd3664f1fe6e0c4f
--- /dev/null
+++ b/example/system/posix/sdkconfig.h
@@ -0,0 +1,322 @@
+#ifndef SDK_CONFIG_H__
+#define SDK_CONFIG_H__
+
+#define CONFIG_USE_FREERTOS
+
+/* Arch configuration */
+
+#define CONFIG_TARGET_ARMv8
+#define CONFIG_ARCH_NAME "armv8"
+
+/* Arm architecture configuration */
+
+/* CONFIG_ARCH_ARMV8_AARCH64 is not set */
+#define CONFIG_ARCH_ARMV8_AARCH32
+
+/* Compiler configuration */
+
+#define CONFIG_ARM_GCC_SELECT
+/* CONFIG_ARM_CLANG_SELECT is not set */
+#define CONFIG_TOOLCHAIN_NAME "gcc"
+#define CONFIG_TARGET_ARMV8_AARCH32
+#define CONFIG_ARCH_EXECUTION_STATE "aarch32"
+
+/* Fpu configuration */
+
+#define CONFIG_ARCH_FPU
+/* CONFIG_ARCH_FPU_VFP_V3 is not set */
+#define CONFIG_ARCH_FPU_VFP_V4
+#define CONFIG_ARM_DPFPU32
+/* CONFIG_ARM_FPU_ABI_SOFT is not set */
+#define CONFIG_ARM_NEON
+#define CONFIG_ARM_FPU_SYMBOL "crypto-neon-fp-armv8"
+/* end of Fpu configuration */
+/* end of Compiler configuration */
+#define CONFIG_USE_CACHE
+#define CONFIG_USE_MMU
+#define CONFIG_USE_AARCH64_L1_TO_AARCH32
+/* end of Arm architecture configuration */
+/* end of Arch configuration */
+
+/* Soc configuration */
+
+/* CONFIG_TARGET_PHYTIUMPI is not set */
+#define CONFIG_TARGET_E2000Q
+/* CONFIG_TARGET_E2000D is not set */
+/* CONFIG_TARGET_E2000S is not set */
+/* CONFIG_TARGET_FT2004 is not set */
+/* CONFIG_TARGET_D2000 is not set */
+#define CONFIG_SOC_NAME "e2000"
+#define CONFIG_TARGET_TYPE_NAME "q"
+#define CONFIG_SOC_CORE_NUM 4
+#define CONFIG_F32BIT_MEMORY_ADDRESS 0x80000000
+#define CONFIG_F32BIT_MEMORY_LENGTH 0x80000000
+#define CONFIG_F64BIT_MEMORY_ADDRESS 0x2000000000
+#define CONFIG_F64BIT_MEMORY_LENGTH 0x800000000
+#define CONFIG_TARGET_E2000
+/* CONFIG_USE_SPINLOCK is not set */
+#define CONFIG_DEFAULT_DEBUG_PRINT_UART1
+/* CONFIG_DEFAULT_DEBUG_PRINT_UART0 is not set */
+/* CONFIG_DEFAULT_DEBUG_PRINT_UART2 is not set */
+/* end of Soc configuration */
+
+/* Board Configuration */
+
+#define CONFIG_BOARD_NAME "demo"
+/* CONFIG_USE_SPI_IOPAD is not set */
+/* CONFIG_USE_GPIO_IOPAD is not set */
+/* CONFIG_USE_CAN_IOPAD is not set */
+/* CONFIG_USE_QSPI_IOPAD is not set */
+/* CONFIG_USE_PWM_IOPAD is not set */
+/* CONFIG_USE_MIO_IOPAD is not set */
+/* CONFIG_USE_TACHO_IOPAD is not set */
+/* CONFIG_USE_UART_IOPAD is not set */
+/* CONFIG_USE_THIRD_PARTY_IOPAD is not set */
+#define CONFIG_E2000Q_DEMO_BOARD
+
+/* IO mux configuration when board start up */
+
+/* end of IO mux configuration when board start up */
+/* CONFIG_CUS_DEMO_BOARD is not set */
+
+/* Build project name */
+
+#define CONFIG_TARGET_NAME "posix"
+/* end of Build project name */
+/* end of Board Configuration */
+
+/* Sdk common configuration */
+
+/* CONFIG_LOG_VERBOS is not set */
+/* CONFIG_LOG_DEBUG is not set */
+/* CONFIG_LOG_INFO is not set */
+/* CONFIG_LOG_WARN is not set */
+#define CONFIG_LOG_ERROR
+/* CONFIG_LOG_NONE is not set */
+/* CONFIG_LOG_EXTRA_INFO is not set */
+/* CONFIG_LOG_DISPALY_CORE_NUM is not set */
+/* CONFIG_BOOTUP_DEBUG_PRINTS is not set */
+#define CONFIG_USE_DEFAULT_INTERRUPT_CONFIG
+#define CONFIG_INTERRUPT_ROLE_MASTER
+/* CONFIG_INTERRUPT_ROLE_SLAVE is not set */
+/* end of Sdk common configuration */
+
+/* Image information configuration */
+
+/* CONFIG_IMAGE_INFO is not set */
+/* end of Image information configuration */
+
+/* Drivers configuration */
+
+#define CONFIG_USE_IOMUX
+/* CONFIG_ENABLE_IOCTRL is not set */
+#define CONFIG_ENABLE_IOPAD
+/* CONFIG_USE_SPI is not set */
+/* CONFIG_USE_QSPI is not set */
+#define CONFIG_USE_SERIAL
+
+/* Usart Configuration */
+
+#define CONFIG_ENABLE_Pl011_UART
+/* end of Usart Configuration */
+/* CONFIG_USE_GPIO is not set */
+/* CONFIG_USE_ETH is not set */
+/* CONFIG_USE_CAN is not set */
+/* CONFIG_USE_I2C is not set */
+/* CONFIG_USE_TIMER is not set */
+/* CONFIG_USE_MIO is not set */
+/* CONFIG_USE_SDMMC is not set */
+/* CONFIG_USE_PCIE is not set */
+/* CONFIG_USE_WDT is not set */
+/* CONFIG_USE_DMA is not set */
+/* CONFIG_USE_NAND is not set */
+/* CONFIG_USE_RTC is not set */
+/* CONFIG_USE_SATA is not set */
+/* CONFIG_USE_USB is not set */
+/* CONFIG_USE_ADC is not set */
+/* CONFIG_USE_PWM is not set */
+/* CONFIG_USE_IPC is not set */
+/* CONFIG_USE_MEDIA is not set */
+/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
+/* end of Drivers configuration */
+
+/* Build setup */
+
+/* CONFIG_CHECK_DEPS is not set */
+#define CONFIG_OUTPUT_BINARY
+
+/* Optimization options */
+
+/* CONFIG_DEBUG_NOOPT is not set */
+/* CONFIG_DEBUG_CUSTOMOPT is not set */
+#define CONFIG_DEBUG_FULLOPT
+/* CONFIG_DEBUG_ENABLE_ALL_WARNING is not set */
+#define CONFIG_DEBUG_OPT_UNUSED_SECTIONS
+#define CONFIG_DEBUG_LINK_MAP
+/* CONFIG_CCACHE is not set */
+/* CONFIG_ARCH_COVERAGE is not set */
+/* CONFIG_LTO_FULL is not set */
+/* end of Optimization options */
+
+/* Debug options */
+
+/* CONFIG_WALL_WARNING_ERROR is not set */
+/* CONFIG_STRICT_PROTOTYPES is not set */
+#define CONFIG_DEBUG_SYMBOLS
+/* CONFIG_FRAME_POINTER is not set */
+#define CONFIG_OUTPUT_ASM_DIS
+/* CONFIG_ENABLE_WSHADOW is not set */
+/* CONFIG_ENABLE_WUNDEF is not set */
+#define CONFIG_DOWNGRADE_DIAG_WARNING
+/* end of Debug options */
+
+/* Lib */
+
+/* CONFIG_USE_COMPILE_CHAIN is not set */
+#define CONFIG_USE_NEWLIB
+/* CONFIG_USE_USER_DEFINED is not set */
+/* end of Lib */
+/* CONFIG_ENABLE_CXX is not set */
+
+/* Linker Options */
+
+#define CONFIG_DEFAULT_LINKER_SCRIPT
+/* CONFIG_USER_DEFINED_LD is not set */
+#define CONFIG_IMAGE_LOAD_ADDRESS 0x80100000
+#define CONFIG_IMAGE_MAX_LENGTH 0x1000000
+#define CONFIG_HEAP_SIZE 1
+#define CONFIG_SVC_STACK_SIZE 0x1000
+#define CONFIG_SYS_STACK_SIZE 0x1000
+#define CONFIG_IRQ_STACK_SIZE 0x1000
+#define CONFIG_ABORT_STACK_SIZE 0x1000
+#define CONFIG_FIQ_STACK_SIZE 0x1000
+#define CONFIG_UNDEF_STACK_SIZE 0x1000
+/* end of Linker Options */
+/* end of Build setup */
+
+/* Component Configuration */
+
+/* Freertos Uart Drivers */
+
+#define CONFIG_FREERTOS_USE_UART
+/* end of Freertos Uart Drivers */
+
+/* Freertos Pwm Drivers */
+
+/* CONFIG_FREERTOS_USE_PWM is not set */
+/* end of Freertos Pwm Drivers */
+
+/* Freertos Qspi Drivers */
+
+/* CONFIG_FREERTOS_USE_QSPI is not set */
+/* end of Freertos Qspi Drivers */
+
+/* Freertos Wdt Drivers */
+
+/* CONFIG_FREERTOS_USE_WDT is not set */
+/* end of Freertos Wdt Drivers */
+
+/* Freertos Eth Drivers */
+
+/* CONFIG_FREERTOS_USE_XMAC is not set */
+/* CONFIG_FREERTOS_USE_GMAC is not set */
+/* end of Freertos Eth Drivers */
+
+/* Freertos Gpio Drivers */
+
+/* CONFIG_FREERTOS_USE_GPIO is not set */
+/* end of Freertos Gpio Drivers */
+
+/* Freertos Spim Drivers */
+
+/* CONFIG_FREERTOS_USE_FSPIM is not set */
+/* end of Freertos Spim Drivers */
+
+/* Freertos DMA Drivers */
+
+/* CONFIG_FREERTOS_USE_FDDMA is not set */
+/* CONFIG_FREERTOS_USE_FGDMA is not set */
+/* end of Freertos DMA Drivers */
+
+/* Freertos Adc Drivers */
+
+/* CONFIG_FREERTOS_USE_ADC is not set */
+/* end of Freertos Adc Drivers */
+
+/* Freertos Can Drivers */
+
+/* CONFIG_FREERTOS_USE_CAN is not set */
+/* end of Freertos Can Drivers */
+
+/* Freertos I2c Drivers */
+
+/* CONFIG_FREERTOS_USE_I2C is not set */
+/* end of Freertos I2c Drivers */
+
+/* Freertos Mio Drivers */
+
+/* CONFIG_FREERTOS_USE_MIO is not set */
+/* end of Freertos Mio Drivers */
+
+/* Freertos Timer Drivers */
+
+/* CONFIG_FREERTOS_USE_TIMER is not set */
+/* end of Freertos Timer Drivers */
+
+/* Freertos Media Drivers */
+
+/* CONFIG_FREERTOS_USE_MEDIA is not set */
+/* end of Freertos Media Drivers */
+/* end of Component Configuration */
+
+/* Third-party configuration */
+
+/* CONFIG_USE_LWIP is not set */
+#define CONFIG_USE_LETTER_SHELL
+
+/* Letter Shell Configuration */
+
+#define CONFIG_LS_PL011_UART
+#define CONFIG_DEFAULT_LETTER_SHELL_USE_UART1
+/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART0 is not set */
+/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
+/* end of Letter Shell Configuration */
+/* CONFIG_USE_AMP is not set */
+/* CONFIG_USE_YMODEM is not set */
+/* CONFIG_USE_SFUD is not set */
+#define CONFIG_USE_BACKTRACE
+/* CONFIG_USE_FATFS_0_1_4 is not set */
+#define CONFIG_USE_TLSF
+/* CONFIG_USE_SPIFFS is not set */
+/* CONFIG_USE_LITTLE_FS is not set */
+/* CONFIG_USE_LVGL is not set */
+/* CONFIG_USE_FREEMODBUS is not set */
+/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
+/* end of Third-party configuration */
+
+/* FreeRTOS Kernel Configuration */
+
+#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
+#define CONFIG_FREERTOS_HZ 1000
+#define CONFIG_FREERTOS_MAX_PRIORITIES 32
+#define CONFIG_FREERTOS_KERNEL_INTERRUPT_PRIORITIES 13
+#define CONFIG_FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES 11
+#define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1
+#define CONFIG_FREERTOS_MINIMAL_TASK_STACKSIZE 1024
+#define CONFIG_FREERTOS_MAX_TASK_NAME_LEN 32
+#define CONFIG_FREERTOS_TIMER_TASK_PRIORITY 1
+#define CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH 2048
+#define CONFIG_FREERTOS_TIMER_QUEUE_LENGTH 10
+#define CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE 1
+#define CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS
+#define CONFIG_FREERTOS_USE_TRACE_FACILITY
+#define CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS
+/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
+#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
+#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
+#define CONFIG_FREERTOS_USE_POSIX
+/* end of FreeRTOS Kernel Configuration */
+
+#endif
diff --git a/example/system/posix/src/posix_example.c b/example/system/posix/src/posix_example.c
new file mode 100644
index 0000000000000000000000000000000000000000..9fcd478f00678a89ccee978edfd927ffc29a0c46
--- /dev/null
+++ b/example/system/posix/src/posix_example.c
@@ -0,0 +1,352 @@
+/*
+ * Copyright : (C) 2023 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: posix_example.c
+ * Date: 2023-10-12 10:41:45
+ * LastEditTime: 2023-10-12 10:41:45
+ * Description: This file is for freertos posix demo test
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 wangxiaodong 2023/10/12 first commit
+ */
+
+/* System headers. */
+#include
+#include
+#include
+
+/* FreeRTOS includes. */
+#include "FreeRTOSConfig.h"
+#include "FreeRTOS.h"
+#include "task.h"
+#include "fatomic.h"
+#include "fkernel.h"
+
+/* FreeRTOS+POSIX. */
+#include "FreeRTOS_POSIX.h"
+#include "FreeRTOS_POSIX/pthread.h"
+#include "FreeRTOS_POSIX/mqueue.h"
+#include "FreeRTOS_POSIX/time.h"
+#include "FreeRTOS_POSIX/fcntl.h"
+#include "FreeRTOS_POSIX/errno.h"
+
+static xTaskHandle xtask_handle;
+
+#define TASK_STACK_SIZE 1024
+
+/* Constants. */
+#define LINE_BREAK "\r\n"
+
+/**
+ * @brief Control messages.
+ *
+ * uint8_t is sufficient for this enum, that we are going to cast to char directly.
+ * If ever needed, implement a function to properly typecast.
+ */
+/**@{ */
+typedef enum ControlMessage
+{
+ eMSG_LOWER_INAVLID = 0x00, /**< Guard, let's not use 0x00 for messages. */
+ eWORKER_CTRL_MSG_CONTINUE = 0x01, /**< Dispatcher to worker, distributing another job. */
+ eWORKER_CTRL_MSG_EXIT = 0x02, /**< Dispatcher to worker, all jobs are finished and the worker receiving such can exit. */
+
+ /* define additional messages here */
+
+ eMSG_UPPER_INVALID = 0xFF /**< Guard, additional tasks shall be defined above. */
+} eControlMessage;
+/**@} */
+
+/**
+ * @defgroup Configuration constants for the dispatcher-worker demo.
+ */
+/**@{ */
+#define MQUEUE_NUMBER_OF_WORKERS ( 4 ) /**< The number of worker threads, each thread has one queue which is used as income box. */
+
+#if ( MQUEUE_NUMBER_OF_WORKERS > 10 )
+ #error "Please keep MQUEUE_NUMBER_OF_WORKERS < 10."
+#endif
+
+#define MQUEUE_WORKER_QNAME_BASE "/qNode0" /**< Queue name base. */
+#define MQUEUE_WORKER_QNAME_BASE_LEN ( 6 ) /** Queue name base length. */
+
+#define MQUEUE_TIMEOUT_SECONDS ( 1 ) /**< Relative timeout for mqueue functions. */
+#define MQUEUE_MAX_NUMBER_OF_MESSAGES_WORKER ( 1 ) /**< Maximum number of messages in a queue. */
+
+#define MQUEUE_MSG_WORKER_CTRL_MSG_SIZE sizeof( uint8_t ) /**< Control message size. */
+#define DEMO_ERROR ( -1 ) /**< Any non-zero value would work. */
+/**@} */
+
+/**
+ * @brief Structure used by Worker thread.
+ */
+/**@{ */
+typedef struct WorkerThreadResources
+{
+ pthread_t pxID; /**< thread ID. */
+ mqd_t xInboxID; /**< mqueue inbox ID. */
+} WorkerThreadResources_t;
+/**@} */
+
+/**
+ * @brief Structure used by Dispatcher thread.
+ */
+/**@{ */
+typedef struct DispatcherThreadResources
+{
+ pthread_t pxID; /**< thread ID. */
+ mqd_t * pOutboxID; /**< a list of mqueue outbox ID. */
+} DispatcherThreadResources_t;
+/**@} */
+
+/*-----------------------------------------------------------*/
+
+static void * prvWorkerThread( void * pvArgs )
+{
+ WorkerThreadResources_t pArgList = *( WorkerThreadResources_t * ) pvArgs;
+
+ printf( "Worker thread #[%d] - start %s", ( int ) pArgList.pxID, LINE_BREAK );
+
+ struct timespec xReceiveTimeout = { 0 };
+
+ ssize_t xMessageSize = 0;
+ char pcReceiveBuffer[ MQUEUE_MSG_WORKER_CTRL_MSG_SIZE ] = { 0 };
+
+ /* This is a worker thread that reacts based on what is sent to its inbox (mqueue). */
+ while( true )
+ {
+ clock_gettime( CLOCK_REALTIME, &xReceiveTimeout );
+ xReceiveTimeout.tv_sec += MQUEUE_TIMEOUT_SECONDS;
+
+ xMessageSize = mq_receive( pArgList.xInboxID,
+ pcReceiveBuffer,
+ MQUEUE_MSG_WORKER_CTRL_MSG_SIZE,
+ 0 );
+
+ /* Parse messages */
+ if( xMessageSize == MQUEUE_MSG_WORKER_CTRL_MSG_SIZE )
+ {
+ switch( ( int ) pcReceiveBuffer[ 0 ] )
+ {
+ case eWORKER_CTRL_MSG_CONTINUE:
+ /* Task branch, currently only prints message to screen. */
+ /* Could perform tasks here. Could also notify dispatcher upon completion, if desired. */
+ printf( "Worker thread #[%d] -- Received eWORKER_CTRL_MSG_CONTINUE %s", ( int ) pArgList.pxID, LINE_BREAK );
+ break;
+
+ case eWORKER_CTRL_MSG_EXIT:
+ printf( "Worker thread #[%d] -- Finished. Exit now. %s", ( int ) pArgList.pxID, LINE_BREAK );
+
+ return NULL;
+
+ default:
+ /* Received a message that we don't care or not defined. */
+ break;
+ }
+ }
+ else
+ {
+ /* Invalid message. Error handling can be done here, if desired. */
+ }
+ }
+
+ /* You should never hit here. */
+ /* return NULL; */
+}
+
+/*-----------------------------------------------------------*/
+
+static void * prvDispatcherThread( void * pvArgs )
+{
+ DispatcherThreadResources_t pArgList = *( DispatcherThreadResources_t * ) pvArgs;
+
+ printf( "Dispatcher thread - start %s", LINE_BREAK );
+
+ struct timespec xSendTimeout = { 0 };
+
+ ssize_t xMessageSize = 0;
+ char pcSendBuffer[ MQUEUE_MSG_WORKER_CTRL_MSG_SIZE ] = { 0 };
+
+ /* Just for fun, let threads do a total of 100 independent tasks. */
+ int i = 0;
+ const int totalNumOfJobsPerThread = 100;
+
+ /* Distribute 1000 independent tasks to workers, in round-robin fashion. */
+ pcSendBuffer[ 0 ] = ( char ) eWORKER_CTRL_MSG_CONTINUE;
+
+ for( i = 0; i < totalNumOfJobsPerThread; i++ )
+ {
+ clock_gettime( CLOCK_REALTIME, &xSendTimeout );
+ xSendTimeout.tv_sec += MQUEUE_TIMEOUT_SECONDS;
+
+ printf( "Dispatcher iteration #[%d] -- Sending msg to worker thread #[%d]. %s", i, ( int ) pArgList.pOutboxID[ i % MQUEUE_NUMBER_OF_WORKERS ], LINE_BREAK );
+
+ xMessageSize = mq_timedsend( pArgList.pOutboxID[ i % MQUEUE_NUMBER_OF_WORKERS ],
+ pcSendBuffer,
+ MQUEUE_MSG_WORKER_CTRL_MSG_SIZE,
+ 0,
+ &xSendTimeout );
+
+ if( xMessageSize != 0 )
+ {
+ /* This error is acceptable in our setup.
+ * Since inbox for each thread fits only one message.
+ * In reality, balance inbox size, message arrival rate, and message drop rate. */
+ printf( "An acceptable failure -- dispatcher failed to send eWORKER_CTRL_MSG_CONTINUE to outbox ID: %x. errno %d %s",
+ ( int ) pArgList.pOutboxID[ i % MQUEUE_NUMBER_OF_WORKERS ], errno, LINE_BREAK );
+ }
+ }
+
+ /* Control thread is now done with distributing jobs. Tell workers they are done. */
+ pcSendBuffer[ 0 ] = ( char ) eWORKER_CTRL_MSG_EXIT;
+
+ for( i = 0; i < MQUEUE_NUMBER_OF_WORKERS; i++ )
+ {
+ printf( "Dispatcher [%d] -- Sending eWORKER_CTRL_MSG_EXIT to worker thread #[%d]. %s", i, ( int ) pArgList.pOutboxID[ i % MQUEUE_NUMBER_OF_WORKERS ], LINE_BREAK );
+
+ /* This is a blocking call, to guarantee worker thread exits. */
+ xMessageSize = mq_send( pArgList.pOutboxID[ i % MQUEUE_NUMBER_OF_WORKERS ],
+ pcSendBuffer,
+ MQUEUE_MSG_WORKER_CTRL_MSG_SIZE,
+ 0 );
+ }
+
+ return NULL;
+}
+
+/*-----------------------------------------------------------*/
+
+/**
+ * @brief Job distribution with actor model.
+ *
+ * See the top of this file for detailed description.
+ */
+void vStartPOSIXDemo( void *pvParameters )
+{
+ int i = 0;
+ int iStatus = 0;
+
+ /* Remove warnings about unused parameters. */
+ ( void ) pvParameters;
+
+ /* Handles of the threads and related resources. */
+ DispatcherThreadResources_t pxDispatcher = { 0 };
+ WorkerThreadResources_t pxWorkers[ MQUEUE_NUMBER_OF_WORKERS ] = { { 0 } };
+ mqd_t workerMqueues[ MQUEUE_NUMBER_OF_WORKERS ] = { 0 };
+
+ struct mq_attr xQueueAttributesWorker =
+ {
+ .mq_flags = 0,
+ .mq_maxmsg = MQUEUE_MAX_NUMBER_OF_MESSAGES_WORKER,
+ .mq_msgsize = MQUEUE_MSG_WORKER_CTRL_MSG_SIZE,
+ .mq_curmsgs = 0
+ };
+
+ pxDispatcher.pOutboxID = workerMqueues;
+
+ /* Create message queues for each worker thread. */
+ for( i = 0; i < MQUEUE_NUMBER_OF_WORKERS; i++ )
+ {
+ /* Prepare a unique queue name for each worker. */
+ char qName[] = MQUEUE_WORKER_QNAME_BASE;
+ qName[ MQUEUE_WORKER_QNAME_BASE_LEN - 1 ] = qName[ MQUEUE_WORKER_QNAME_BASE_LEN - 1 ] + i;
+
+ /* Open a queue with --
+ * O_CREAT -- create a message queue.
+ * O_RDWR -- both receiving and sending messages.
+ */
+ pxWorkers[ i ].xInboxID = mq_open( qName,
+ O_CREAT | O_RDWR,
+ ( mode_t ) 0,
+ &xQueueAttributesWorker );
+
+ if( pxWorkers[ i ].xInboxID == ( mqd_t ) -1 )
+ {
+ printf( "Invalid inbox (mqueue) for worker. %s", LINE_BREAK );
+ iStatus = DEMO_ERROR;
+ break;
+ }
+
+ /* Outboxes of dispatcher thread is the inboxes of all worker threads. */
+ pxDispatcher.pOutboxID[ i ] = pxWorkers[ i ].xInboxID;
+ }
+
+ /* Create and start Worker threads. */
+ if( iStatus == 0 )
+ {
+ for( i = 0; i < MQUEUE_NUMBER_OF_WORKERS; i++ )
+ {
+ ( void ) pthread_create( &( pxWorkers[ i ].pxID ), NULL, prvWorkerThread, &pxWorkers[ i ] );
+ }
+
+ /* Create and start dispatcher thread. */
+ ( void ) pthread_create( &( pxDispatcher.pxID ), NULL, prvDispatcherThread, &pxDispatcher );
+
+ /* Actors will do predefined tasks in threads. Current implementation is that
+ * dispatcher actor notifies worker actors to terminate upon finishing distributing tasks. */
+
+ /* Wait for worker threads to join. */
+ for( i = 0; i < MQUEUE_NUMBER_OF_WORKERS; i++ )
+ {
+ ( void ) pthread_join( pxWorkers[ i ].pxID, NULL );
+ }
+
+ /* Wait for dispatcher thread to join. */
+ ( void ) pthread_join( pxDispatcher.pxID, NULL );
+ }
+
+ /* Close and unlink worker message queues. */
+ for( i = 0; i < MQUEUE_NUMBER_OF_WORKERS; i++ )
+ {
+ char qName[] = MQUEUE_WORKER_QNAME_BASE;
+ qName[ MQUEUE_WORKER_QNAME_BASE_LEN - 1 ] = qName[ MQUEUE_WORKER_QNAME_BASE_LEN - 1 ] + i;
+
+ if( pxWorkers[ i ].xInboxID != NULL )
+ {
+ ( void ) mq_close( pxWorkers[ i ].xInboxID );
+ ( void ) mq_unlink( qName );
+ }
+ }
+
+ /* Have something on console. */
+ if( iStatus == 0 )
+ {
+ printf( "All threads finished. %s", LINE_BREAK );
+ }
+ else
+ {
+ printf( "Queues did not get initialized properly. Did not run demo. %s", LINE_BREAK );
+ }
+
+ /* This task was created with the native xTaskCreate() API function, so
+ must not run off the end of its implementing thread. */
+ vTaskDelete( NULL );
+
+}
+
+void CreatePOSIXDemoTasks(void)
+{
+ printf("Create POSIXDemo Task \r\n");
+ xTaskCreate(vStartPOSIXDemo, "POSIXDemo", TASK_STACK_SIZE, NULL, 6, &xtask_handle);
+
+}
+
+void DeletePOSIXDemoTasks(void)
+{
+ if (xtask_handle)
+ {
+ vTaskDelete(xtask_handle);
+ printf("POSIXDemo deletion \r\n");
+ }
+}
\ No newline at end of file
diff --git a/example/system/posix/src/posix_example_cmd.c b/example/system/posix/src/posix_example_cmd.c
new file mode 100644
index 0000000000000000000000000000000000000000..38e211e1cb06115e9174431e78e15c573e05b71d
--- /dev/null
+++ b/example/system/posix/src/posix_example_cmd.c
@@ -0,0 +1,69 @@
+/*
+ * Copyright : (C) 2023 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: posix_example_cmd.c
+ * Date: 2023-10-12 10:41:45
+ * LastEditTime: 2023-10-12 10:41:45
+ * Description: This file is for freertos posix command interface
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 wangxiaodong 2023/06/25 first commit
+ */
+
+#include
+#include
+#include "shell.h"
+#include "posix_example.h"
+
+static void CreatePosixCmdUsage(void)
+{
+ printf("Usage:\r\n");
+ printf(" posix thread \r\n");
+ printf(" -- Create posix thread test now.\r\n");
+ printf(" posix demo \r\n");
+ printf(" -- Create posix test now.\r\n");
+}
+
+int CreatePosixCmd(int argc, char *argv[])
+{
+ static int create_flg = 0; /* 1 is tasks has been created*/
+
+ if (argc < 2)
+ {
+ CreatePosixCmdUsage();
+ return -1;
+ }
+
+ if (!strcmp(argv[1], "demo"))
+ {
+ CreatePOSIXDemoTasks();
+ }
+
+ if (!strcmp(argv[1], "thread"))
+ {
+ CreateThreadDemoTasks();
+ }
+
+ else
+ {
+ printf("Error: Invalid arguments. \r\n");
+ CreatePosixCmdUsage();
+ }
+ return 0;
+}
+
+SHELL_EXPORT_CMD(SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), posix, CreatePosixCmd, posix task test);
+
+
diff --git a/example/system/posix/src/thread_demo.c b/example/system/posix/src/thread_demo.c
new file mode 100644
index 0000000000000000000000000000000000000000..f6010b196e28f575367b83cbd59dffebdee6f81c
--- /dev/null
+++ b/example/system/posix/src/thread_demo.c
@@ -0,0 +1,78 @@
+/*
+ * Copyright : (C) 2023 Phytium Information Technology, Inc.
+ * All Rights Reserved.
+ *
+ * This program is OPEN SOURCE software: you can redistribute it and/or modify it
+ * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
+ * either version 1.0 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the Phytium Public License for more details.
+ *
+ *
+ * FilePath: thread_demo.c
+ * Date: 2023-10-12 10:41:45
+ * LastEditTime: 2023-10-12 10:41:45
+ * Description: This file is for freertos posix thread function test
+ *
+ * Modify History:
+ * Ver Who Date Changes
+ * ----- ------ -------- --------------------------------------
+ * 1.0 wangxiaodong 2023/10/12 first commit
+ */
+
+
+#include
+#include
+#include
+#include
+// #include
+#include "FreeRTOS_POSIX/pthread.h"
+
+
+/*要执行的线程*/
+void *test_thread(void *arg)
+{
+ int num = (unsigned long long)arg; /** sizeof(void*) == 8 and sizeof(int) == 4 (64 bits) */
+
+ printf("This is test thread, arg is %d\n", num);
+ sleep(5);
+ /*退出线程*/
+ pthread_exit(NULL);
+ return NULL;
+}
+
+
+void CreateThreadDemoTasks(void)
+{
+ pthread_t thread;
+ void *thread_return;
+ int arg = 520;
+ int res;
+
+ printf("start create thread\n");
+
+ /*创建线程,线程为test_thread函数*/
+ res = pthread_create(&thread, NULL, test_thread, (void*)(arg));
+ if(res != 0)
+ {
+ printf("create thread fail\n");
+ exit(res);
+ }
+
+ printf("create treads success\n");
+ printf("waiting for threads to finish...\n");
+
+ /*等待线程终止*/
+ res = pthread_join(thread, &thread_return);
+ if(res != 0)
+ {
+ printf("thread exit fail\n");
+ exit(res);
+ }
+
+ printf("thread exit ok\n");
+
+}
+
diff --git a/example/template/makefile b/example/template/makefile
index 052f0f6c305697185ea13ae82c02f5861eac9b68..b658321cc8aa1805dbc5c910a9b8f42c1f0541cf 100644
--- a/example/template/makefile
+++ b/example/template/makefile
@@ -6,16 +6,12 @@ FREERTOS_SDK_DIR = $(CURDIR)/../..
BOOT_IMG_NAME ?= freertos
USER_CSRC := main.c
-USER_CSRC += $(wildcard src/*.c) #添加src文件目录的所有C文件
-USER_CSRC += $(wildcard ../common/*.c) #添加 ../common 目录的所有C文件
USER_ASRC := #添加汇编代码
USER_CXXSRC := #添加C++代码
#添加 .h 文件所在目录
-USER_INCLUDE := $(PROJECT_DIR) \
- $(PROJECT_DIR)/inc \
- $(PROJECT_DIR)/../common
+USER_INCLUDE := $(PROJECT_DIR)
include $(FREERTOS_SDK_DIR)/tools/makeall.mk
diff --git a/example/template/sdkconfig b/example/template/sdkconfig
index 95bd9bbf2d1123e072d06ad45a536adca0276faf..5e62ebaa8b5dc7d7ee85f62d9cb53d99f89960b1 100644
--- a/example/template/sdkconfig
+++ b/example/template/sdkconfig
@@ -125,8 +125,6 @@ CONFIG_USE_IOMUX=y
CONFIG_ENABLE_IOPAD=y
# CONFIG_USE_SPI is not set
# CONFIG_USE_QSPI is not set
-CONFIG_USE_GIC=y
-CONFIG_ENABLE_GICV3=y
CONFIG_USE_SERIAL=y
#
@@ -154,6 +152,7 @@ CONFIG_ENABLE_Pl011_UART=y
# CONFIG_USE_IPC is not set
# CONFIG_USE_MEDIA is not set
# CONFIG_USE_SCMI_MHU is not set
+# CONFIG_USE_I2S is not set
# end of Drivers configuration
#
@@ -193,7 +192,8 @@ CONFIG_DOWNGRADE_DIAG_WARNING=y
# Lib
#
CONFIG_USE_COMPILE_CHAIN=y
-# CONFIG_USB_USER_DEFINED is not set
+# CONFIG_USE_NEWLIB is not set
+# CONFIG_USE_USER_DEFINED is not set
# end of Lib
# CONFIG_ENABLE_CXX is not set
@@ -318,7 +318,6 @@ CONFIG_DEFAULT_LETTER_SHELL_USE_UART1=y
# end of Letter Shell Configuration
# CONFIG_USE_AMP is not set
-# CONFIG_USE_SDMMC_CMD is not set
# CONFIG_USE_YMODEM is not set
# CONFIG_USE_SFUD is not set
CONFIG_USE_BACKTRACE=y
@@ -329,10 +328,11 @@ CONFIG_USE_TLSF=y
# CONFIG_USE_LVGL is not set
# CONFIG_USE_FREEMODBUS is not set
# CONFIG_USE_CHERRY_USB is not set
+# CONFIG_USE_FSL_SDMMC is not set
# end of Third-party configuration
#
-# Kernel Configuration
+# FreeRTOS Kernel Configuration
#
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
CONFIG_FREERTOS_HZ=1000
@@ -352,4 +352,5 @@ CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
# CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set
CONFIG_FREERTOS_TOTAL_HEAP_SIZE=10240
CONFIG_FREERTOS_TASK_FPU_SUPPORT=1
-# end of Kernel Configuration
+# CONFIG_FREERTOS_USE_POSIX is not set
+# end of FreeRTOS Kernel Configuration
diff --git a/example/template/sdkconfig.h b/example/template/sdkconfig.h
index 970d473b386e1ac54d444262d7316a62cfe5ef71..b40116acff0f921367228eecfa2fdcb27c43103d 100644
--- a/example/template/sdkconfig.h
+++ b/example/template/sdkconfig.h
@@ -114,8 +114,6 @@
#define CONFIG_ENABLE_IOPAD
/* CONFIG_USE_SPI is not set */
/* CONFIG_USE_QSPI is not set */
-#define CONFIG_USE_GIC
-#define CONFIG_ENABLE_GICV3
#define CONFIG_USE_SERIAL
/* Usart Configuration */
@@ -141,6 +139,7 @@
/* CONFIG_USE_IPC is not set */
/* CONFIG_USE_MEDIA is not set */
/* CONFIG_USE_SCMI_MHU is not set */
+/* CONFIG_USE_I2S is not set */
/* end of Drivers configuration */
/* Build setup */
@@ -176,7 +175,8 @@
/* Lib */
#define CONFIG_USE_COMPILE_CHAIN
-/* CONFIG_USB_USER_DEFINED is not set */
+/* CONFIG_USE_NEWLIB is not set */
+/* CONFIG_USE_USER_DEFINED is not set */
/* end of Lib */
/* CONFIG_ENABLE_CXX is not set */
@@ -280,7 +280,6 @@
/* CONFIG_DEFAULT_LETTER_SHELL_USE_UART2 is not set */
/* end of Letter Shell Configuration */
/* CONFIG_USE_AMP is not set */
-/* CONFIG_USE_SDMMC_CMD is not set */
/* CONFIG_USE_YMODEM is not set */
/* CONFIG_USE_SFUD is not set */
#define CONFIG_USE_BACKTRACE
@@ -291,9 +290,10 @@
/* CONFIG_USE_LVGL is not set */
/* CONFIG_USE_FREEMODBUS is not set */
/* CONFIG_USE_CHERRY_USB is not set */
+/* CONFIG_USE_FSL_SDMMC is not set */
/* end of Third-party configuration */
-/* Kernel Configuration */
+/* FreeRTOS Kernel Configuration */
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER
#define CONFIG_FREERTOS_HZ 1000
@@ -313,6 +313,7 @@
/* CONFIG_FREERTOS_USE_TICKLESS_IDLE is not set */
#define CONFIG_FREERTOS_TOTAL_HEAP_SIZE 10240
#define CONFIG_FREERTOS_TASK_FPU_SUPPORT 1
-/* end of Kernel Configuration */
+/* CONFIG_FREERTOS_USE_POSIX is not set */
+/* end of FreeRTOS Kernel Configuration */
#endif
diff --git a/freertos.kconfig b/freertos.kconfig
index e7e04bc02bdb8f2474c2ec22e11a8a1c1bbdc83b..62c1e624e6801dded93378a7a304c5eb42dd9f28 100644
--- a/freertos.kconfig
+++ b/freertos.kconfig
@@ -14,14 +14,14 @@ source "$(SDK_DIR)/common/common.kconfig"
source "$(SDK_DIR)/drivers/drivers.kconfig"
source "$(SDK_DIR)/tools/build/build.kconfig"
menu "Component Configuration"
- source "$(FREERTOS_SDK_ROOT)/drivers/Kconfig"
+ source "$(FREERTOS_SDK_DIR)/drivers/Kconfig"
endmenu
source "$(FREERTOS_SDK_DIR)/third-party/third-party.kconfig"
-menu "Kernel Configuration"
- source "$(FREERTOS_SDK_DIR)/third-party/freertos/Kconfig"
-endmenu
+source "$(FREERTOS_SDK_DIR)/third-party/freertos/freertos.kconfig"
+
+#source "$(SDK_DIR)/lib/Kconfig"
diff --git a/install.py b/install.py
index b1457055042f367ef7efe0f91eaab8d87bd76e56..aa0270bd6924e19e6ee00ebdf26eb268ca8e0223 100755
--- a/install.py
+++ b/install.py
@@ -18,6 +18,7 @@ windows_msys2 = 2
### environment constant
sdk_profile_path = "/etc/profile.d/phytium_dev.sh"
+sdk_version = "v0.7.1"
def rm_line(str, file_path):
with open(file_path,'r+') as f:
@@ -78,7 +79,6 @@ if (curr_path != install_path):
freertos_sdk_path = install_path
print("[1]: Standalone SDK at {}".format(freertos_sdk_path))
-
# make sure sdk scripts are executable
os.system("chmod +x ./*.sh --silent ")
os.system("chmod +x ./scripts/*.sh --silent ")
@@ -86,7 +86,7 @@ os.system("chmod +x ./make/*.mk --silent ")
os.system("chmod +x ./lib/Kconfiglib/*.py --silent ")
# Add standalone sdk
-standalone_sdk_v="6061198125dbbcf87ecb9ca56b82cf65ce2ccd8e"
+standalone_sdk_v="420010ebd1d6ec474a14dd793953cd42964993dd"
standalone_path=freertos_sdk_path + '/standalone'
standalone_branche="master"
standalone_remote="https://gitee.com/phytium_embedded/phytium-standalone-sdk.git"
@@ -127,22 +127,17 @@ try:
except Exception as ex:
print(ex)
- print("[1]: Create SDK profile {} failed !!!!".format(sdk_profile_path))
+ print("[2]: Create SDK profile {} failed !!!!".format(sdk_profile_path))
exit()
-
rm_line("### PHYTIUM FREERTOS SDK SETTING START",sdk_profile_path)
rm_line("export FREERTOS_SDK_ROOT=",sdk_profile_path)
rm_line("export FREERTOS_STANDALONE=",sdk_profile_path)
rm_line("### PHYTIUM FREERTOS SDK SETTING END",sdk_profile_path)
-
-
print("[2]: Reset environment")
## STEP 3: get cross-platform compiler
-
-
#########################################
if not os.path.exists(os.environ.get('AARCH32_CROSS_PATH')):
print("[3]: Failed, AARCH32 CC package {} non found !!!".format('AARCH32_CROSS_PATH'))
@@ -152,19 +147,12 @@ if not os.path.exists(os.environ.get('AARCH64_CROSS_PATH')):
print("[3]: Failed, AARCH64 CC package {} non found !!!".format('AARCH64_CROSS_PATH'))
exit()
-print("[4]: GNU CC version: 10.3.1-2021.07")
-
-## STEP 4: write environment variables
-os.environ['FREERTOS_SDK_ROOT'] = freertos_sdk_path
-
-os.system("echo \"### PHYTIUM FREERTOS SDK SETTING START\" >> {}".format(sdk_profile_path))
-os.system("echo \"export FREERTOS_SDK_ROOT={}\" >> {}".format(freertos_sdk_path, sdk_profile_path))
-os.system("echo \"export FREERTOS_STANDALONE={}\" >> {}".format(standalone_path, sdk_profile_path))
-os.system("echo \"### PHYTIUM FREERTOS SDK SETTING END\" >> {}".format(sdk_profile_path))
+print("[3]: GNU CC version: 10.3.1-2021.07")
-## STEP 5: display success message and enable environment
-print("[5]: Success!!! Standalone SDK is Install at {}".format(freertos_sdk_path))
-print("[5]: SDK Environment Variables is in {}".format(sdk_profile_path))
-print("[5]: Phytium FREERTOS SDK Setup Done for {}!!!".format(usr))
-print("[5]: Input 'source {}' or Reboot System to Active SDK".format(sdk_profile_path))
+## STEP 4: display success message and enable environment
+print("[4]: Success!!! Standalone SDK is Install at {}".format(freertos_sdk_path))
+print("[4]: SDK Environment Variables is in {}".format(sdk_profile_path))
+print("[4]: Phytium FREERTOS SDK Setup Done for {}!!!".format(usr))
+print("[4]: FREERTOS SDK version is {}".format(sdk_version))
+print("[4]: Input 'source {}' or Reboot System to Active SDK".format(sdk_profile_path))
diff --git a/third-party/Kconfig b/third-party/Kconfig
deleted file mode 100644
index 4ec7ffc8e7c4c97d0a7d5d57255804316b4228ff..0000000000000000000000000000000000000000
--- a/third-party/Kconfig
+++ /dev/null
@@ -1,121 +0,0 @@
-
-config USE_LWIP
- bool
- prompt "Use LWIP"
- help
- Include LWIP for Network Protocol
-
- if USE_LWIP
- source "$(FREERTOS_SDK_ROOT)/third-party/lwip-2.1.2/Kconfig"
- endif
-
-
-config USE_BACKTRACE
- bool
- prompt "Display a backtrace."
- default y
-
-config USE_FATFS_0_1_4
- bool
- prompt "Use FATFS(0.1.4)"
- default n
- help
- Include FATFS
-
- if USE_FATFS_0_1_4
- source "$(FREERTOS_SDK_ROOT)/third-party/fatfs-0.1.4/Kconfig"
- endif
-
-config USE_SFUD
- bool
- prompt "Use SFUD(Spi Flash Library)"
- default n
- help
- Include JEDEC SFDP standard serial (SPI) flash universal driver library
-
- if USE_SFUD
- source "$(FREERTOS_SDK_ROOT)/third-party/sfud-1.1.0/Kconfig"
- endif
-
-config USE_SPIFFS
- bool
- default n
- prompt "Use Spiffs"
- help
- Include Spiffs as SPI Flash File System
-
- if USE_SPIFFS
- source "$(FREERTOS_SDK_ROOT)/third-party/spiffs-0.3.7/Kconfig"
- endif
-
-
-config USE_AMP
- bool
- prompt "Use Asymmetric Multi-processing"
- default n
- help
- Include OpenAMP framework
-
- if USE_AMP
- config USE_LIBMETAL
- bool
- prompt "Use Libmetal"
- help
- Include Libmetal
-
- source "$(FREERTOS_SDK_ROOT)/third-party/openamp/ports/Kconfig"
-
- endif
-
-
-config USE_LETTER_SHELL
- bool
- prompt "Use Letter Shell"
- default n
- help
- Include Litter Shell for User Interactive
-
- if USE_LETTER_SHELL
- source "$(FREERTOS_SDK_ROOT)/third-party/letter-shell-3.1/Kconfig"
- endif
-
-config USE_TLSF
- bool
- prompt "Use TLSF"
- default n
- help
- Include TLSF for memory pool
-
-config USE_SDMMC_CMD
- bool
- prompt "Use Sd/MMC/SDIO/eMMc Cmd"
- default n
- help
- Include Sd/MMC/SDIO/eMMc Command framework
-
- if USE_SDMMC_CMD
- source "$(FREERTOS_SDK_ROOT)/third-party/sdmmc-1.0/Kconfig"
- endif
-
-config USE_CHERRY_USB
- bool
- default n
- prompt "Use CherryUSB(0.8.0)"
- help
- Include CherryUSB for XHCI controller
-
- if USE_CHERRY_USB
- source "$(FREERTOS_SDK_ROOT)/third-party/cherryusb/Kconfig"
- endif
-
-config USE_LVGL
- bool
- default n
- prompt "Use LVGL"
- help
- Include LVGL
-
- if USE_LVGL
- source "$(FREERTOS_SDK_ROOT)/third-party/lvgl-8.3/Kconfig"
- endif
-
diff --git a/third-party/fatfs-0.1.4/fatfs.mk b/third-party/fatfs-0.1.4/fatfs.mk
index ef810a6e27c4e8299124912ca9d9e2b42117ee63..a8c65ecde52bfc8f790a7261fbfbb6e43f509f46 100644
--- a/third-party/fatfs-0.1.4/fatfs.mk
+++ b/third-party/fatfs-0.1.4/fatfs.mk
@@ -1,4 +1,4 @@
-FATFS_OS_DIR := $(FREERTOS_SDK_ROOT)/third-party/fatfs-0.1.4
+FATFS_OS_DIR := $(FREERTOS_SDK_DIR)/third-party/fatfs-0.1.4
FATFS_BM_DIR := $(STANDALONE_DIR)/third-party/fatfs-0.1.4
include $(FATFS_BM_DIR)/fatfs.mk
diff --git a/third-party/freertos/Kconfig b/third-party/freertos/Kconfig
index 001149b1470d196833bf482cd8be6c6a0db2488d..7a7040485e92478ccbfbaa9550004daca54d87a2 100644
--- a/third-party/freertos/Kconfig
+++ b/third-party/freertos/Kconfig
@@ -195,4 +195,17 @@
help
If set to 1, tasks are created without an FPU context and must call vPortTaskUsesFPU() to give
themselves an FPU context before using any FPU instructions.
- If set to 2, all tasks will have an FPU context by default.
\ No newline at end of file
+ If set to 2, all tasks will have an FPU context by default.
+
+ config FREERTOS_USE_POSIX
+ bool "Enable use Portable Operating System Interface (POSIX threading wrapper) for FreeRTOS"
+ default n
+ help
+ The Portable Operating System Interface (POSIX) is a family of standards specified by
+ the IEEE Computer Society for maintaining compatibility between operating systems.
+ FreeRTOS+POSIX implements a small subset of the POSIX threading API.
+ This subset allows application developers familiar with POSIX API to develop a
+ FreeRTOS application using POSIX like threading primitives.
+ FreeRTOS+POSIX does not implement more than 80% of the POSIX API.
+ Therefore, an existing POSIX compliant application or a POSIX compliant library
+ cannot be ported to run on FreeRTOS Kernel using only this wrapper.
\ No newline at end of file
diff --git a/third-party/freertos/freertos.kconfig b/third-party/freertos/freertos.kconfig
new file mode 100644
index 0000000000000000000000000000000000000000..3ce031c9fc0741bd238608b2bc948e952c2777e6
--- /dev/null
+++ b/third-party/freertos/freertos.kconfig
@@ -0,0 +1,216 @@
+
+menu "FreeRTOS Kernel Configuration"
+
+ config FREERTOS_OPTIMIZED_SCHEDULER
+ bool "Enable FreeRTOS platform optimized scheduler"
+ default y
+ help
+ On most platforms there are instructions can speedup the ready task
+ searching. Enabling this option the FreeRTOS with this instructions
+ support will be built.
+
+ config FREERTOS_HZ
+ int "Tick rate (Hz)"
+ range 1 1000
+ default 1000
+ help
+ Select the tick rate at which FreeRTOS does pre-emptive context switching.
+
+ config FREERTOS_MAX_PRIORITIES
+ int "Max task priority"
+ range 1 32
+ default 32
+ help
+ Sets the maximum priority that can be assigned to a task. Tasks can be assigned a priority
+ from zero, which is the lowest priority, to (FREERTOS_MAX_PRIORITIES - 1), which is the highest
+ priority.
+
+ config FREERTOS_KERNEL_INTERRUPT_PRIORITIES
+ int "Kernel interrupt priority"
+ range 1 13
+ default 13
+ help
+ Sets the interrupt priority used by the tick interrupt, and must always be set to the
+ lowest possible interrupt priority.
+
+ config FREERTOS_MAX_API_CALL_INTERRUPT_PRIORITIES
+ int "Max api call interrupt priority"
+ range 1 15
+ default 11
+ help
+ Sets the highest interrupt priority from which interrupt-safe FreeRTOS API functions can
+ be called.
+
+
+ config FREERTOS_THREAD_LOCAL_STORAGE_POINTERS
+ int "Number of thread local storage pointers"
+ range 1 256
+ default 1
+ help
+ FreeRTOS has the ability to store per-thread pointers in the task
+ control block. This controls the number of pointers available.
+
+ This value must be at least 1. Index 0 is reserved for use by the pthreads API
+ thread-local-storage. Other indexes can be used for any desired purpose.
+
+
+ config FREERTOS_MINIMAL_TASK_STACKSIZE
+ int "Minimal Task stack size"
+ range 768 32768
+ default 1024
+ help
+ The idle task has its own stack, sized in bytes. The default size is enough for most uses. Size can be
+ reduced to 768 bytes if no (or simple) FreeRTOS idle hooks are used and pthread local storage or FreeRTOS
+ local storage cleanup callbacks are not used.
+
+ The stack size may need to be increased above the default if the app installs idle or thread local storage
+ cleanup hooks that use a lot of stack memory.
+
+
+ config FREERTOS_MAX_TASK_NAME_LEN
+ int "Maximum task name length"
+ range 1 256
+ default 32
+ help
+ Changes the maximum task name length. Each task allocated will
+ include this many bytes for a task name. Using a shorter value
+ saves a small amount of RAM, a longer value allows more complex
+ names.
+
+ For most uses, the default of 16 is OK.
+
+
+ config FREERTOS_TIMER_TASK_PRIORITY
+ int "FreeRTOS timer task priority"
+ range 1 25
+ default 1
+ help
+ The timer service task (primarily) makes use of existing FreeRTOS features, allowing timer
+ functionality to be added to an application with minimal impact on the size of the application's
+ executable binary.
+
+ Use this constant to define the priority that the timer task will run at.
+
+ config FREERTOS_TIMER_TASK_STACK_DEPTH
+ int "FreeRTOS timer task stack size"
+ range 1536 32768
+ default 2048
+ help
+ The timer service task (primarily) makes use of existing FreeRTOS features, allowing timer
+ functionality to be added to an application with minimal impact on the size of the application's
+ executable binary.
+
+ Use this constant to define the size (in bytes) of the stack allocated for the timer task.
+
+ config FREERTOS_TIMER_QUEUE_LENGTH
+ int "FreeRTOS timer queue length"
+ range 5 20
+ default 10
+ help
+ FreeRTOS provides a set of timer related API functions. Many of these functions use a standard
+ FreeRTOS queue to send commands to the timer service task. The queue used for this purpose is
+ called the 'timer command queue'. The 'timer command queue' is private to the FreeRTOS timer
+ implementation, and cannot be accessed directly.
+
+ For most uses the default value of 10 is OK.
+
+ config FREERTOS_QUEUE_REGISTRY_SIZE
+ int "FreeRTOS queue registry size"
+ range 0 20
+ default 0
+ help
+ FreeRTOS uses the queue registry as a means for kernel aware debuggers to locate queues, semaphores,
+ and mutexes. The registry allows for a textual name to be associated with a queue for easy identification
+ within a debugging GUI. A value of 0 will disable queue registry functionality, and a value larger than 0
+ will specify the number of queues/semaphores/mutexes that the registry can hold.
+
+ config FREERTOS_GENERATE_RUN_TIME_STATS
+ bool "Enable FreeRTOS to collect run time stats"
+ default y
+ select FREERTOS_USE_TRACE_FACILITY
+ select FREERTOS_USE_STATS_FORMATTING_FUNCTIONS
+ help
+ If enabled, configGENERATE_RUN_TIME_STATS will be defined as 1 in
+ FreeRTOS. This will allow FreeRTOS to collect information regarding the
+ usage of processor time amongst FreeRTOS tasks.
+ The function vTaskGetRunTimeStats() will also be available
+ if FREERTOS_USE_STATS_FORMATTING_FUNCTIONS and
+ FREERTOS_USE_TRACE_FACILITY are enabled. vTaskGetRunTimeStats() will
+ display the run time of each task as a % of the total run time of all
+ CPUs (task run time / no of CPUs) / (total run time / 100 )
+
+ config FREERTOS_USE_TRACE_FACILITY
+ bool "Enable FreeRTOS trace facility"
+ default n
+ help
+ If enabled, configUSE_TRACE_FACILITY will be defined as 1 in FreeRTOS.
+ This will allow the usage of trace facility functions such as
+ uxTaskGetSystemState().
+
+ config FREERTOS_USE_STATS_FORMATTING_FUNCTIONS
+ bool "Enable FreeRTOS stats formatting functions"
+ depends on FREERTOS_USE_TRACE_FACILITY
+ default n
+ help
+ If enabled, configUSE_STATS_FORMATTING_FUNCTIONS will be defined as 1 in
+ FreeRTOS. This will allow the usage of stats formatting functions such
+ as vTaskList().
+
+ config FREERTOS_USE_TICKLESS_IDLE
+ bool "Tickless idle support"
+ default n
+ help
+ If power management support is enabled, FreeRTOS will be able to put
+ the system into light sleep mode when no tasks need to run for a number
+ of ticks. This number can be set using FREERTOS_IDLE_TIME_BEFORE_SLEEP option.
+ This feature is also known as "automatic light sleep".
+
+ Note that timers created using APIs may prevent the system from
+ entering sleep mode, even when no tasks need to run.
+ To skip unnecessary wake-up initialize a timer with the "skip_unhandled_events" option as true.
+
+ If disabled, automatic light sleep support will be disabled.
+
+ config FREERTOS_IDLE_TIME_BEFORE_SLEEP
+ int "Minimum number of ticks to enter sleep mode for"
+ depends on FREERTOS_USE_TICKLESS_IDLE
+ default 3
+ range 2 4294967295
+ # Minimal value is 2 because of a check in FreeRTOS.h (search configEXPECTED_IDLE_TIME_BEFORE_SLEEP)
+ help
+ FreeRTOS will enter light sleep mode if no tasks need to run for this number
+ of ticks.
+
+ config FREERTOS_TOTAL_HEAP_SIZE
+ int "Total amount of RAM available in the FreeRTOS heap, unit kbytes"
+ range 1 65535
+ default 10240
+ help
+ Set the total amount of RAM available in the FreeRTOS heap, unit kbytes, less than RAM_SIZE_MB.
+
+
+ config FREERTOS_TASK_FPU_SUPPORT
+ int "Use floating point support"
+ default 1
+ range 1 2
+ help
+ If set to 1, tasks are created without an FPU context and must call vPortTaskUsesFPU() to give
+ themselves an FPU context before using any FPU instructions.
+ If set to 2, all tasks will have an FPU context by default.
+
+ config FREERTOS_USE_POSIX
+ bool "Enable use POSIX threading wrapper"
+ default n
+ help
+ The Portable Operating System Interface (POSIX) is a family of standards specified by
+ the IEEE Computer Society for maintaining compatibility between operating systems.
+ FreeRTOS+POSIX implements a small subset of the POSIX threading API.
+ This subset allows application developers familiar with POSIX API to develop a
+ FreeRTOS application using POSIX like threading primitives.
+ FreeRTOS+POSIX does not implement more than 80% of the POSIX API.
+ Therefore, an existing POSIX compliant application or a POSIX compliant library
+ cannot be ported to run on FreeRTOS Kernel using only this wrapper.
+
+
+endmenu
+
diff --git a/third-party/freertos/include.mk b/third-party/freertos/include.mk
index 2d83c75d5bd58ee55c21ef98c3ff0e47f60820c6..0ecb7a3e8a8d31f10f3c0b29fd08a906efbaec43 100644
--- a/third-party/freertos/include.mk
+++ b/third-party/freertos/include.mk
@@ -4,15 +4,25 @@ ifdef CONFIG_USE_FREERTOS
THIRDP_CUR_DIR := $(FREERTOS_SDK_DIR)/third-party
# src files
-BUILD_INC_PATH_DIR += $(THIRDP_CUR_DIR)/freertos/include \
- $(THIRDP_CUR_DIR)/freertos/portable/GCC/ft_platform
-
- ifdef CONFIG_TARGET_ARMV8_AARCH64
- BUILD_INC_PATH_DIR += $(THIRDP_CUR_DIR)/freertos/portable/GCC/ft_platform/aarch64
- endif #CONFIG_TARGET_ARMV8_AARCH64
+BUILD_INC_PATH_DIR += $(THIRDP_CUR_DIR)/freertos/include
+BUILD_INC_PATH_DIR += $(THIRDP_CUR_DIR)/freertos/portable/GCC/ft_platform
- ifdef CONFIG_TARGET_ARMV8_AARCH32
- BUILD_INC_PATH_DIR += $(THIRDP_CUR_DIR)/freertos/portable/GCC/ft_platform/aarch32
- endif
+ifdef CONFIG_FREERTOS_USE_POSIX
+BUILD_INC_PATH_DIR += $(THIRDP_CUR_DIR)/freertos/posix/include
+BUILD_INC_PATH_DIR += $(THIRDP_CUR_DIR)/freertos/posix/FreeRTOS-Plus-POSIX/include
+BUILD_INC_PATH_DIR += $(THIRDP_CUR_DIR)/freertos/posix/FreeRTOS-Plus-POSIX/include/portable
+BUILD_INC_PATH_DIR += $(THIRDP_CUR_DIR)/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/phytium
+BUILD_INC_PATH_DIR += $(THIRDP_CUR_DIR)/freertos/posix/include/FreeRTOS_POSIX
+BUILD_INC_PATH_DIR += $(THIRDP_CUR_DIR)/freertos/posix/include/FreeRTOS_POSIX/sys
+BUILD_INC_PATH_DIR += $(THIRDP_CUR_DIR)/freertos/posix/include/private
+endif
+
+ifdef CONFIG_TARGET_ARMV8_AARCH64
+ BUILD_INC_PATH_DIR += $(THIRDP_CUR_DIR)/freertos/portable/GCC/ft_platform/aarch64
+endif #CONFIG_TARGET_ARMV8_AARCH64
+
+ifdef CONFIG_TARGET_ARMV8_AARCH32
+ BUILD_INC_PATH_DIR += $(THIRDP_CUR_DIR)/freertos/portable/GCC/ft_platform/aarch32
+endif
endif
\ No newline at end of file
diff --git a/third-party/freertos/portable/GCC/ft_platform/FreeRTOSConfig.h b/third-party/freertos/portable/GCC/ft_platform/FreeRTOSConfig.h
index 51031f89130eb6dd1ceba3398c903efdd8753d00..c822aaca0fbae2a1635563b38151470d779ab735 100644
--- a/third-party/freertos/portable/GCC/ft_platform/FreeRTOSConfig.h
+++ b/third-party/freertos/portable/GCC/ft_platform/FreeRTOSConfig.h
@@ -109,7 +109,7 @@
#define configCHECK_FOR_STACK_OVERFLOW 0
#define configUSE_RECURSIVE_MUTEXES 1
#define configUSE_MALLOC_FAILED_HOOK 1
-#define configUSE_APPLICATION_TASK_TAG 0
+
#define configUSE_COUNTING_SEMAPHORES 1
#define configUSE_QUEUE_SETS 1
#define configSUPPORT_STATIC_ALLOCATION 1 //use dynamic memory allocation
@@ -223,4 +223,8 @@ QEMU-Virt. */
void vPrintf(const char *format, ...);
#endif
+
+#define configUSE_POSIX_ERRNO 1
+#define configUSE_APPLICATION_TASK_TAG 1
+
#endif /* FREERTOS_CONFIG_H */
diff --git a/third-party/freertos/portable/GCC/ft_platform/aarch32/port.c b/third-party/freertos/portable/GCC/ft_platform/aarch32/port.c
index 4f408b09a35cf70a240c3467576059a476dcfdb8..c51fd6fe31a5e179ced9334fcd418e0fcd5e85de 100644
--- a/third-party/freertos/portable/GCC/ft_platform/aarch32/port.c
+++ b/third-party/freertos/portable/GCC/ft_platform/aarch32/port.c
@@ -34,7 +34,7 @@
#include "FreeRTOS.h"
#include "task.h"
#include "finterrupt.h"
-#include "fgic_cpu_interface.h"
+#include "fgic_v3.h"
#ifndef configINTERRUPT_CONTROLLER_BASE_ADDRESS
#error configINTERRUPT_CONTROLLER_BASE_ADDRESS must be defined. See https://www.FreeRTOS.org/Using-FreeRTOS-on-Cortex-A-Embedded-Processors.html
diff --git a/third-party/freertos/portable/GCC/ft_platform/aarch32/portmacro.h b/third-party/freertos/portable/GCC/ft_platform/aarch32/portmacro.h
index 2af406a221b28421ed8c94b29d56f44a40b8dead..a66f97a8d0252a8459d6e675c6ff2662d6414bff 100644
--- a/third-party/freertos/portable/GCC/ft_platform/aarch32/portmacro.h
+++ b/third-party/freertos/portable/GCC/ft_platform/aarch32/portmacro.h
@@ -32,7 +32,8 @@
extern "C"
{
#endif
-
+#include "ftypes.h"
+#include "FreeRTOSConfig.h"
/*-----------------------------------------------------------
* Port specific definitions.
*
diff --git a/third-party/freertos/portable/GCC/ft_platform/aarch64/port.c b/third-party/freertos/portable/GCC/ft_platform/aarch64/port.c
index b5ccae0240772b887a8877c147590d4bf7a988c3..756d6400a4ed97a9371f7e0c06edf33a97aa856c 100644
--- a/third-party/freertos/portable/GCC/ft_platform/aarch64/port.c
+++ b/third-party/freertos/portable/GCC/ft_platform/aarch64/port.c
@@ -35,7 +35,7 @@
#include "task.h"
#include "ftypes.h"
#include "finterrupt.h"
-#include "fgic_cpu_interface.h"
+#include "fgic_v3.h"
#ifndef configUNIQUE_INTERRUPT_PRIORITIES
#error configUNIQUE_INTERRUPT_PRIORITIES must be defined. See http://www.freertos.org/Using-FreeRTOS-on-Cortex-A-Embedded-Processors.html
diff --git a/third-party/freertos/portable/GCC/ft_platform/aarch64/portmacro.h b/third-party/freertos/portable/GCC/ft_platform/aarch64/portmacro.h
index c3552494d10a6e1bdfa42023146c0c5083fcbd51..65b4ab8b55f32a55fe785d1688cc40fd43475d33 100644
--- a/third-party/freertos/portable/GCC/ft_platform/aarch64/portmacro.h
+++ b/third-party/freertos/portable/GCC/ft_platform/aarch64/portmacro.h
@@ -34,6 +34,7 @@ extern "C"
{
#endif
#include "ftypes.h"
+#include "FreeRTOSConfig.h"
/*-----------------------------------------------------------
* Port specific definitions.
*
diff --git a/third-party/freertos/portable/freertos_configs.c b/third-party/freertos/portable/freertos_configs.c
index f23193f3de8b0c0588f1ad81091974a10bc594ab..1504217e93d27ad7e81bca9991f4494045581ed9 100644
--- a/third-party/freertos/portable/freertos_configs.c
+++ b/third-party/freertos/portable/freertos_configs.c
@@ -36,7 +36,7 @@
#include "fcpu_info.h"
#include "fassert.h"
#include "fexception.h"
-#include "fprintf.h"
+
static volatile u32 is_in_irq = 0 ;
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/FreeRTOS_POSIX.h b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/FreeRTOS_POSIX.h
new file mode 100644
index 0000000000000000000000000000000000000000..d93870923e943e5c19a22aa6305a2efda36b587c
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/FreeRTOS_POSIX.h
@@ -0,0 +1,50 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX.h
+ * @brief FreeRTOS+POSIX header.
+ *
+ * This file must be included before all other FreeRTOS+POSIX includes.
+ */
+
+#ifndef _FREERTOS_POSIX_H_
+#define _FREERTOS_POSIX_H_
+
+/* FreeRTOS+POSIX platform-specific configuration headers. */
+#include "FreeRTOS_POSIX_portable.h"
+#include "FreeRTOS_POSIX_portable_default.h"
+
+/* FreeRTOS includes. */
+#include "FreeRTOS.h"
+#include "event_groups.h"
+#include "semphr.h"
+#include "task.h"
+
+/* FreeRTOS+POSIX data types and internal structs. */
+#include "FreeRTOS_POSIX/sys/types.h"
+#include "FreeRTOS_POSIX_internal.h"
+
+#endif /* _FREERTOS_POSIX_H_ */
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/FreeRTOS_POSIX_internal.h b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/FreeRTOS_POSIX_internal.h
new file mode 100644
index 0000000000000000000000000000000000000000..16f8036b90c431453c32ee47a7644eb099db3fbd
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/FreeRTOS_POSIX_internal.h
@@ -0,0 +1,129 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+#ifndef _FREERTOS_POSIX_INTERNAL_H_
+#define _FREERTOS_POSIX_INTERNAL_H_
+
+/**
+ * @file FreeRTOS_POSIX_internal.h
+ * @brief Internal structs and initializers for FreeRTOS+POSIX.
+ */
+
+/* Amazon FreeRTOS includes. */
+#include "iot_doubly_linked_list.h"
+
+/**
+ * @brief Mutex attribute object.
+ */
+#if posixconfigENABLE_PTHREAD_MUTEXATTR_T == 1
+ typedef struct pthread_mutexattr_internal
+ {
+ int iType; /**< Mutex type. */
+ } pthread_mutexattr_internal_t;
+#endif
+
+#if posixconfigENABLE_PTHREAD_MUTEX_T == 1
+
+/**
+ * @brief Mutex.
+ */
+ typedef struct pthread_mutex_internal
+ {
+ BaseType_t xIsInitialized; /**< Set to pdTRUE if this mutex is initialized, pdFALSE otherwise. */
+ StaticSemaphore_t xMutex; /**< FreeRTOS mutex. */
+ TaskHandle_t xTaskOwner; /**< Owner; used for deadlock detection and permission checks. */
+ pthread_mutexattr_internal_t xAttr; /**< Mutex attributes. */
+ } pthread_mutex_internal_t;
+
+/**
+ * @brief Compile-time initializer of pthread_mutex_internal_t.
+ */
+ #define FREERTOS_POSIX_MUTEX_INITIALIZER \
+ ( ( ( pthread_mutex_internal_t ) \
+ { \
+ .xIsInitialized = pdFALSE, \
+ .xMutex = { { 0 } }, \
+ .xTaskOwner = NULL, \
+ .xAttr = { .iType = 0 } \
+ } \
+ ) \
+ )
+#endif /* if posixconfigENABLE_PTHREAD_MUTEX_T == 1 */
+
+#if posixconfigENABLE_PTHREAD_COND_T == 1
+
+/**
+ * @brief Condition variable.
+ */
+ typedef struct pthread_cond_internal
+ {
+ BaseType_t xIsInitialized; /**< Set to pdTRUE if this condition variable is initialized, pdFALSE otherwise. */
+ StaticSemaphore_t xCondWaitSemaphore; /**< Threads block on this semaphore in pthread_cond_wait. */
+ unsigned iWaitingThreads; /**< The number of threads currently waiting on this condition variable. */
+ } pthread_cond_internal_t;
+
+/**
+ * @brief Compile-time initializer of pthread_cond_internal_t.
+ */
+
+ #define FREERTOS_POSIX_COND_INITIALIZER \
+ ( ( ( pthread_cond_internal_t ) \
+ { \
+ .xIsInitialized = pdFALSE, \
+ .xCondWaitSemaphore = { { 0 } }, \
+ .iWaitingThreads = 0 \
+ } \
+ ) \
+ )
+
+#endif /* if posixconfigENABLE_PTHREAD_COND_T == 1 */
+
+#if posixconfigENABLE_SEM_T == 1
+
+/**
+ * @brief Semaphore type.
+ */
+ typedef struct
+ {
+ StaticSemaphore_t xSemaphore; /**< FreeRTOS semaphore. */
+ int value; /**< POSIX semaphore count. */
+ } sem_internal_t;
+#endif /* if posixconfigENABLE_SEM_T == 1 */
+
+#if posixconfigENABLE_PTHREAD_BARRIER_T == 1
+
+/**
+ * @brief Barrier object.
+ */
+ typedef struct pthread_barrier_internal
+ {
+ unsigned uThreadCount; /**< Current number of threads that have entered barrier. */
+ unsigned uThreshold; /**< The count argument of pthread_barrier_init. */
+ StaticSemaphore_t xThreadCountSemaphore; /**< Prevents more than uThreshold threads from exiting pthread_barrier_wait at once. */
+ StaticEventGroup_t xBarrierEventGroup; /**< FreeRTOS event group that blocks to wait on threads entering barrier. */
+ } pthread_barrier_internal_t;
+#endif /* if posixconfigENABLE_PTHREAD_BARRIER_T == 1 */
+
+#endif /* _FREERTOS_POSIX_INTERNAL_H_ */
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/FreeRTOS_POSIX_types.h b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/FreeRTOS_POSIX_types.h
new file mode 100644
index 0000000000000000000000000000000000000000..3b45b8d3fa2708eb8032b5b48afaed495dd4198b
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/FreeRTOS_POSIX_types.h
@@ -0,0 +1,81 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+#ifndef _FREERTOS_POSIX_INTERNAL_TYPES_H_
+#define _FREERTOS_POSIX_INTERNAL_TYPES_H_
+
+#include "FreeRTOS_POSIX_internal.h"
+
+/*
+ * sys/types.h defines a POSIX type when posixconfigENABLE_PTHREAD__T
+ * is not defined AND when posixconfigENABLE_PTHREAD__T is set to 1.
+ * FreeRTOS_POSIX_internal.h defines internal type ONLY when
+ * posixconfigENABLE_PTHREAD__T is set to 1.
+ * #else part below is to have a type defined, so the code compiles, when
+ * posixconfigENABLE_PTHREAD__T is not defined.
+ */
+#if posixconfigENABLE_PTHREAD_MUTEX_T == 1
+ typedef pthread_mutex_internal_t PthreadMutexType_t;
+#else
+ typedef void * PthreadMutexType_t;
+#endif
+
+#if posixconfigENABLE_PTHREAD_COND_T == 1
+ typedef pthread_cond_internal_t PthreadCondType_t;
+#else
+ typedef void * PthreadCondType_t;
+#endif
+
+#if posixconfigENABLE_SEM_T == 1
+ typedef sem_internal_t PosixSemType_t;
+#else
+ typedef void * PosixSemType_t;
+#endif
+
+#if posixconfigENABLE_PTHREAD_MUTEXATTR_T == 1
+ typedef struct pthread_mutexattr
+ {
+ uint32_t ulpthreadMutexAttrStorage;
+ } PthreadMutexAttrType_t;
+#else
+ typedef void * PthreadMutexAttrType_t;
+#endif
+
+#if posixconfigENABLE_PTHREAD_ATTR_T == 1
+ typedef struct pthread_attr
+ {
+ uint32_t ulpthreadAttrStorage;
+ } PthreadAttrType_t;
+#else
+ typedef void * PthreadAttrType_t;
+#endif
+
+#if posixconfigENABLE_PTHREAD_BARRIER_T == 1
+ typedef pthread_barrier_internal_t PthreadBarrierType_t;
+#else
+ typedef void * PthreadBarrierType_t;
+#endif
+
+#endif /* _FREERTOS_POSIX_INTERNAL_TYPES_H_ */
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/FreeRTOS_POSIX_portable_default.h b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/FreeRTOS_POSIX_portable_default.h
new file mode 100644
index 0000000000000000000000000000000000000000..763b9015d53a2fef0fa68a120915147b58f7ab59
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/FreeRTOS_POSIX_portable_default.h
@@ -0,0 +1,145 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_portable_default.h
+ * @brief Defaults for port-specific configuration of FreeRTOS+POSIX.
+ */
+
+#ifndef _FREERTOS_POSIX_PORTABLE_DEFAULT_H_
+#define _FREERTOS_POSIX_PORTABLE_DEFAULT_H_
+
+/**
+ * @name The FreeRTOS task name given to pthreads.
+ */
+/**@{ */
+#ifndef posixconfigPTHREAD_TASK_NAME
+ #define posixconfigPTHREAD_TASK_NAME "pthread" /**< Task name. */
+#endif
+/**@} */
+
+/**
+ * @name the FreeRTOS timer name given to POSIX timers.
+ */
+/**@{ */
+#ifndef posixconfigTIMER_NAME
+ #define posixconfigTIMER_NAME "timer" /**< Timer name. */
+#endif
+/**@} */
+
+/**
+ * @name Defaults for POSIX message queue implementation.
+ */
+/**@{ */
+#ifndef posixconfigMQ_MAX_MESSAGES
+ #define posixconfigMQ_MAX_MESSAGES 10 /**< Maximum number of messages in an mq at one time. */
+#endif
+
+#ifndef posixconfigMQ_MAX_SIZE
+ #define posixconfigMQ_MAX_SIZE 128 /**< Maximum size (in bytes) of each message. */
+#endif
+/**@} */
+
+/**
+ * @name POSIX implementation-dependent constants usually defined in limits.h.
+ *
+ * They are defined here to provide portability between platforms.
+ */
+/**@{ */
+#ifndef PTHREAD_STACK_MIN
+ #define PTHREAD_STACK_MIN configMINIMAL_STACK_SIZE * sizeof( StackType_t ) /**< Minimum size in bytes of thread stack storage. */
+#endif
+#ifndef NAME_MAX
+ #define NAME_MAX 64 /**< Maximum number of bytes in a filename (not including terminating null). */
+#endif
+#ifndef SEM_VALUE_MAX
+ #define SEM_VALUE_MAX 0x7FFFU /**< Maximum value of a sem_t. */
+#endif
+/**@} */
+
+/**
+ * @name Enable typedefs of POSIX types.
+ *
+ * Set these values to 1 or 0 to enable or disable the typedefs, respectively.
+ * These typedefs should only be disabled if they conflict with system typedefs.
+ */
+/**@{ */
+#ifndef posixconfigENABLE_CLOCK_T
+ #define posixconfigENABLE_CLOCK_T 1 /**< clock_t in sys/types.h */
+#endif
+#ifndef posixconfigENABLE_CLOCKID_T
+ #define posixconfigENABLE_CLOCKID_T 1 /**< clockid_t in sys/types.h */
+#endif
+#ifndef posixconfigENABLE_MODE_T
+ #define posixconfigENABLE_MODE_T 1 /**< mode_t in sys/types.h */
+#endif
+#ifndef posixconfigENABLE_PID_T
+ #define posixconfigENABLE_PID_T 1 /**< pid_t in sys/types.h */
+#endif
+#ifndef posixconfigENABLE_PTHREAD_ATTR_T
+ #define posixconfigENABLE_PTHREAD_ATTR_T 1 /**< pthread_attr_t in sys/types.h */
+#endif
+#ifndef posixconfigENABLE_PTHREAD_COND_T
+ #define posixconfigENABLE_PTHREAD_COND_T 1 /**< pthread_cond_t in sys/types.h */
+#endif
+#ifndef posixconfigENABLE_PTHREAD_CONDATTR_T
+ #define posixconfigENABLE_PTHREAD_CONDATTR_T 1 /**< pthread_condattr_t in sys/types.h */
+#endif
+#ifndef posixconfigENABLE_PTHREAD_MUTEX_T
+ #define posixconfigENABLE_PTHREAD_MUTEX_T 1 /**< pthread_mutex_t in sys/types.h */
+#endif
+#ifndef posixconfigENABLE_PTHREAD_MUTEXATTR_T
+ #define posixconfigENABLE_PTHREAD_MUTEXATTR_T 1 /**< pthread_mutexattr_t in sys/types.h */
+#endif
+#ifndef posixconfigENABLE_PTHREAD_T
+ #define posixconfigENABLE_PTHREAD_T 1 /**< pthread_t in sys/types.h */
+#endif
+#ifndef posixconfigENABLE_SSIZE_T
+ #define posixconfigENABLE_SSIZE_T 1 /**< ssize_t in sys/types.h */
+#endif
+#ifndef posixconfigENABLE_TIME_T
+ #define posixconfigENABLE_TIME_T 1 /**< time_t in sys/types.h */
+#endif
+#ifndef posixconfigENABLE_TIMER_T
+ #define posixconfigENABLE_TIMER_T 1 /**< timer_t in sys/types.h */
+#endif
+#ifndef posixconfigENABLE_USECONDS_T
+ #define posixconfigENABLE_USECONDS_T 1 /**< useconds_t in sys/types.h */
+#endif
+#ifndef posixconfigENABLE_TIMESPEC
+ #define posixconfigENABLE_TIMESPEC 1 /**< struct timespec in time.h */
+#endif
+#ifndef posixconfigENABLE_ITIMERSPEC
+ #define posixconfigENABLE_ITIMERSPEC 1 /**< struct itimerspec in time.h */
+#endif
+#ifndef posixconfigENABLE_SEM_T
+ #define posixconfigENABLE_SEM_T 1 /**< struct sem_t in semaphore.h */
+#endif
+#ifndef posixconfigENABLE_PTHREAD_BARRIER_T
+ #define posixconfigENABLE_PTHREAD_BARRIER_T 1 /**< pthread_barrier_t in sys/types.h */
+#endif
+/**@} */
+
+#endif /* ifndef _FREERTOS_POSIX_PORTABLE_DEFAULT_H_ */
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/espressif/esp32_devkitc_esp_wrover_kit/FreeRTOS_POSIX_portable.h b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/espressif/esp32_devkitc_esp_wrover_kit/FreeRTOS_POSIX_portable.h
new file mode 100644
index 0000000000000000000000000000000000000000..c187043b34f611d7b77e6218c02cf18fa4c79f3b
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/espressif/esp32_devkitc_esp_wrover_kit/FreeRTOS_POSIX_portable.h
@@ -0,0 +1,60 @@
+/*
+ * Amazon FreeRTOS+POSIX V1.0.4
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_portable.h
+ * @brief Port-specific configuration of FreeRTOS+POSIX.
+ */
+
+#ifndef _FREERTOS_POSIX_PORTABLE_H_
+#define _FREERTOS_POSIX_PORTABLE_H_
+
+/* ESP-IDF already defines the following types. */
+#define posixconfigENABLE_CLOCK_T 0
+#define posixconfigENABLE_CLOCKID_T 0
+#define posixconfigENABLE_MODE_T 0
+#define posixconfigENABLE_PTHREAD_ATTR_T 0
+#define posixconfigENABLE_PTHREAD_COND_T 0
+#define posixconfigENABLE_PTHREAD_CONDATTR_T 0
+#define posixconfigENABLE_PTHREAD_MUTEX_T 0
+#define posixconfigENABLE_PTHREAD_MUTEXATTR_T 0
+#define posixconfigENABLE_PTHREAD_T 0
+#define posixconfigENABLE_TIME_T 0
+#define posixconfigENABLE_TIMESPEC 0
+#define posixconfigENABLE_ITIMERSPEC 0
+
+/* ESP-IDF already provides the header sched.h. Exclude FreeRTOS+POSIX sched.h by
+ * defining its double inclusion guard. */
+#define _FREERTOS_POSIX_SCHED_H_
+
+/* Use the FreeRTOS+POSIX time.h header instead of the ESP-IDF time.h. Disable
+ * ESP-IDF time.h by defining its double inclusion guard. */
+#define _TIME_H_
+
+/* Disable the timer_t type defined by ESP-IDF. */
+#define __timer_t_defined
+#include
+
+#endif /* _FREERTOS_POSIX_PORTABLE_H_ */
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/microchip/curiosity_pic32mzef/FreeRTOS_POSIX_portable.h b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/microchip/curiosity_pic32mzef/FreeRTOS_POSIX_portable.h
new file mode 100644
index 0000000000000000000000000000000000000000..d4d2db74960b1d268ce68ea67d94753e99a42024
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/microchip/curiosity_pic32mzef/FreeRTOS_POSIX_portable.h
@@ -0,0 +1,50 @@
+/*
+ * Amazon FreeRTOS+POSIX V1.0.4
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_portable.h
+ * @brief Port-specific configuration of FreeRTOS+POSIX.
+ */
+
+#ifndef _FREERTOS_POSIX_PORTABLE_H_
+#define _FREERTOS_POSIX_PORTABLE_H_
+
+/* Microchip includes. */
+#include
+
+/* Microchip already typedefs the following types. */
+#define posixconfigENABLE_MODE_T 0
+#define posixconfigENABLE_PID_T 0
+#define posixconfigENABLE_SSIZE_T 0
+#define posixconfigENABLE_USECONDS_T 0
+/* Microchip -mnewlib compiler option supports these types. */
+#define posixconfigENABLE_TIMESPEC 0
+#define posixconfigENABLE_ITIMERSPEC 0
+#define posixconfigENABLE_CLOCKID_T 0
+#define posixconfigENABLE_TIME_T 0
+#define posixconfigENABLE_TIMER_T 0
+
+
+#endif /* _FREERTOS_POSIX_PORTABLE_H_ */
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/nxp/lpc54018iotmodule/FreeRTOS_POSIX_portable.h b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/nxp/lpc54018iotmodule/FreeRTOS_POSIX_portable.h
new file mode 100644
index 0000000000000000000000000000000000000000..1022f4b1741759a34bf1dbee93b69151d697f700
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/nxp/lpc54018iotmodule/FreeRTOS_POSIX_portable.h
@@ -0,0 +1,37 @@
+/*
+ * Amazon FreeRTOS+POSIX V1.0.4
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_portable.h
+ * @brief Port-specific configuration of FreeRTOS+POSIX.
+ */
+
+#ifndef _FREERTOS_POSIX_PORTABLE_H_
+#define _FREERTOS_POSIX_PORTABLE_H_
+
+/* This port uses the defaults in FreeRTOS_POSIX_portable_default.h, so this
+ * file is empty. */
+
+#endif /* _FREERTOS_POSIX_PORTABLE_H_ */
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/pc/windows/FreeRTOS_POSIX_portable.h b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/pc/windows/FreeRTOS_POSIX_portable.h
new file mode 100644
index 0000000000000000000000000000000000000000..1022f4b1741759a34bf1dbee93b69151d697f700
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/pc/windows/FreeRTOS_POSIX_portable.h
@@ -0,0 +1,37 @@
+/*
+ * Amazon FreeRTOS+POSIX V1.0.4
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_portable.h
+ * @brief Port-specific configuration of FreeRTOS+POSIX.
+ */
+
+#ifndef _FREERTOS_POSIX_PORTABLE_H_
+#define _FREERTOS_POSIX_PORTABLE_H_
+
+/* This port uses the defaults in FreeRTOS_POSIX_portable_default.h, so this
+ * file is empty. */
+
+#endif /* _FREERTOS_POSIX_PORTABLE_H_ */
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/phytium/FreeRTOS_POSIX_portable.h b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/phytium/FreeRTOS_POSIX_portable.h
new file mode 100644
index 0000000000000000000000000000000000000000..29b1bcefda3029dde9dcea4c85eb1cef6613f646
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/phytium/FreeRTOS_POSIX_portable.h
@@ -0,0 +1,81 @@
+/*
+ * Amazon FreeRTOS+POSIX V1.0.4
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_portable.h
+ * @brief Port-specific configuration of FreeRTOS+POSIX.
+ */
+
+#ifndef _FREERTOS_POSIX_PORTABLE_H_
+#define _FREERTOS_POSIX_PORTABLE_H_
+
+#include
+
+/* This port uses the defaults in FreeRTOS_POSIX_portable_default.h, so this
+ * file is empty. */
+
+#define posixconfigENABLE_CLOCK_T 0
+#define posixconfigENABLE_CLOCKID_T 0
+#define posixconfigENABLE_MODE_T 0
+
+
+#define posixconfigENABLE_TIME_T 0
+#define posixconfigENABLE_TIMESPEC 0
+#define posixconfigENABLE_ITIMERSPEC 0
+
+#define posixconfigENABLE_SSIZE_T 0
+
+#define posixconfigENABLE_TIMER_T 0
+
+// #define posixconfigENABLE_CLOCK_T 0
+// #define posixconfigENABLE_CLOCKID_T 0
+// #define posixconfigENABLE_MODE_T 0
+
+// #define posixconfigENABLE_TIMESPEC 0
+// #define posixconfigENABLE_ITIMERSPEC 0
+
+
+// #define posixconfigENABLE_PTHREAD_T 0
+
+// #define posixconfigENABLE_PTHREAD_MUTEXATTR_T 1
+
+// #define posixconfigENABLE_PTHREAD_CONDATTR_T 0
+
+// #define posixconfigENABLE_PTHREAD_MUTEX_T 1
+
+// #define posixconfigENABLE_PTHREAD_ATTR_T 0
+
+// #define posixconfigENABLE_PTHREAD_COND_T 1
+
+
+
+
+/* phytium already provides the header sched.h. Exclude FreeRTOS+POSIX sched.h by
+ * defining its double inclusion guard. */
+// #define _FREERTOS_POSIX_SCHED_H_
+
+
+
+#endif /* _FREERTOS_POSIX_PORTABLE_H_ */
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/st/stm32l475_discovery/FreeRTOS_POSIX_portable.h b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/st/stm32l475_discovery/FreeRTOS_POSIX_portable.h
new file mode 100644
index 0000000000000000000000000000000000000000..1022f4b1741759a34bf1dbee93b69151d697f700
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/st/stm32l475_discovery/FreeRTOS_POSIX_portable.h
@@ -0,0 +1,37 @@
+/*
+ * Amazon FreeRTOS+POSIX V1.0.4
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_portable.h
+ * @brief Port-specific configuration of FreeRTOS+POSIX.
+ */
+
+#ifndef _FREERTOS_POSIX_PORTABLE_H_
+#define _FREERTOS_POSIX_PORTABLE_H_
+
+/* This port uses the defaults in FreeRTOS_POSIX_portable_default.h, so this
+ * file is empty. */
+
+#endif /* _FREERTOS_POSIX_PORTABLE_H_ */
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/ti/cc3220_launchpad/FreeRTOS_POSIX_portable.h b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/ti/cc3220_launchpad/FreeRTOS_POSIX_portable.h
new file mode 100644
index 0000000000000000000000000000000000000000..1022f4b1741759a34bf1dbee93b69151d697f700
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/include/portable/ti/cc3220_launchpad/FreeRTOS_POSIX_portable.h
@@ -0,0 +1,37 @@
+/*
+ * Amazon FreeRTOS+POSIX V1.0.4
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_portable.h
+ * @brief Port-specific configuration of FreeRTOS+POSIX.
+ */
+
+#ifndef _FREERTOS_POSIX_PORTABLE_H_
+#define _FREERTOS_POSIX_PORTABLE_H_
+
+/* This port uses the defaults in FreeRTOS_POSIX_portable_default.h, so this
+ * file is empty. */
+
+#endif /* _FREERTOS_POSIX_PORTABLE_H_ */
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_clock.c b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_clock.c
new file mode 100644
index 0000000000000000000000000000000000000000..3c31e971951d3af14b956d5e3a15e0cc16358d30
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_clock.c
@@ -0,0 +1,240 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_clock.c
+ * @brief Implementation of clock functions in time.h
+ */
+
+/* C standard library includes. */
+#include
+#include
+
+/* FreeRTOS+POSIX includes. */
+#include "FreeRTOS_POSIX.h"
+#include "FreeRTOS_POSIX/errno.h"
+#include "FreeRTOS_POSIX/time.h"
+#include "FreeRTOS_POSIX/utils.h"
+
+/* Declaration of snprintf. The header stdio.h is not included because it
+ * includes conflicting symbols on some platforms. */
+extern int snprintf( char * s,
+ size_t n,
+ const char * format,
+ ... );
+
+/*-----------------------------------------------------------*/
+
+// clock_t clock( void )
+// {
+// /* This function is currently unsupported. It will always return -1. */
+
+// return ( clock_t ) -1;
+// }
+
+/*-----------------------------------------------------------*/
+
+int clock_getcpuclockid( pid_t pid,
+ clockid_t * clock_id )
+{
+ /* Silence warnings about unused parameters. */
+ ( void ) pid;
+ ( void ) clock_id;
+
+ /* This function is currently unsupported. It will always return EPERM. */
+ return EPERM;
+}
+
+/*-----------------------------------------------------------*/
+
+int clock_getres( clockid_t clock_id,
+ struct timespec * res )
+{
+ /* Silence warnings about unused parameters. */
+ ( void ) clock_id;
+
+ /* Convert FreeRTOS tick resolution as timespec. */
+ if( res != NULL )
+ {
+ res->tv_sec = 0;
+ res->tv_nsec = NANOSECONDS_PER_TICK;
+ }
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int clock_gettime( clockid_t clock_id,
+ struct timespec * tp )
+{
+ TimeOut_t xCurrentTime = { 0 };
+
+ /* Intermediate variable used to convert TimeOut_t to struct timespec.
+ * Also used to detect overflow issues. It must be unsigned because the
+ * behavior of signed integer overflow is undefined. */
+ uint64_t ullTickCount = 0ULL;
+
+ /* Silence warnings about unused parameters. */
+ ( void ) clock_id;
+
+ /* Get the current tick count and overflow count. vTaskSetTimeOutState()
+ * is used to get these values because they are both static in tasks.c. */
+ vTaskSetTimeOutState( &xCurrentTime );
+
+ /* Adjust the tick count for the number of times a TickType_t has overflowed.
+ * portMAX_DELAY should be the maximum value of a TickType_t. */
+ ullTickCount = ( uint64_t ) ( xCurrentTime.xOverflowCount ) << ( sizeof( TickType_t ) * 8 );
+
+ /* Add the current tick count. */
+ ullTickCount += xCurrentTime.xTimeOnEntering;
+
+ /* Convert ullTickCount to timespec. */
+ UTILS_NanosecondsToTimespec( ( int64_t ) ullTickCount * NANOSECONDS_PER_TICK, tp );
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int clock_nanosleep( clockid_t clock_id,
+ int flags,
+ const struct timespec * rqtp,
+ struct timespec * rmtp )
+{
+ int iStatus = 0;
+ TickType_t xSleepTime = 0;
+ struct timespec xCurrentTime = { 0 };
+
+ /* Silence warnings about unused parameters. */
+ ( void ) clock_id;
+ ( void ) rmtp;
+ ( void ) flags; /* This is only ignored if INCLUDE_vTaskDelayUntil is 0. */
+
+ /* Check rqtp. */
+ if( UTILS_ValidateTimespec( rqtp ) == false )
+ {
+ iStatus = EINVAL;
+ }
+
+ /* Get current time */
+ if( ( iStatus == 0 ) && ( clock_gettime( CLOCK_REALTIME, &xCurrentTime ) != 0 ) )
+ {
+ iStatus = EINVAL;
+ }
+
+ if( iStatus == 0 )
+ {
+ /* Check for absolute time sleep. */
+ if( ( flags & TIMER_ABSTIME ) == TIMER_ABSTIME )
+ {
+ /* Get current time */
+ if( clock_gettime( CLOCK_REALTIME, &xCurrentTime ) != 0 )
+ {
+ iStatus = EINVAL;
+ }
+
+ /* Get number of ticks until absolute time. */
+ if( ( iStatus == 0 ) && ( UTILS_AbsoluteTimespecToDeltaTicks( rqtp, &xCurrentTime, &xSleepTime ) == 0 ) )
+ {
+ /* Delay until absolute time if vTaskDelayUntil is available. */
+ #if ( INCLUDE_vTaskDelayUntil == 1 )
+
+ /* Get the current tick count. This variable isn't declared
+ * at the top of the function because it's only used and needed
+ * if vTaskDelayUntil is available. */
+ TickType_t xCurrentTicks = xTaskGetTickCount();
+
+ /* Delay until absolute time. */
+ vTaskDelayUntil( &xCurrentTicks, xSleepTime );
+ #else
+
+ /* If vTaskDelayUntil isn't available, ignore the TIMER_ABSTIME flag
+ * and sleep for a relative time. */
+ vTaskDelay( xSleepTime );
+ #endif
+ }
+ }
+ else
+ {
+ /* If TIMER_ABSTIME isn't specified, convert rqtp to ticks and
+ * sleep for a relative time. */
+ if( UTILS_TimespecToTicks( rqtp, &xSleepTime ) == 0 )
+ {
+ vTaskDelay( xSleepTime );
+ }
+ }
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int clock_settime( clockid_t clock_id,
+ const struct timespec * tp )
+{
+ /* Silence warnings about unused parameters. */
+ ( void ) clock_id;
+ ( void ) tp;
+
+ /* This function is currently unsupported. It will always return -1 and
+ * set errno to EPERM. */
+ errno = EPERM;
+
+ return -1;
+}
+
+/*-----------------------------------------------------------*/
+
+int nanosleep( const struct timespec * rqtp,
+ struct timespec * rmtp )
+{
+ int iStatus = 0;
+ TickType_t xSleepTime = 0;
+
+ /* Silence warnings about unused parameters. */
+ ( void ) rmtp;
+
+ /* Check rqtp. */
+ if( UTILS_ValidateTimespec( rqtp ) == false )
+ {
+ errno = EINVAL;
+ iStatus = -1;
+ }
+
+ if( iStatus == 0 )
+ {
+ /* Convert rqtp to ticks and delay. */
+ if( UTILS_TimespecToTicks( rqtp, &xSleepTime ) == 0 )
+ {
+ vTaskDelay( xSleepTime );
+ }
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_mqueue.c b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_mqueue.c
new file mode 100644
index 0000000000000000000000000000000000000000..9f9079bb1a2c04f2bd7960f21d5a1b6e6c9e5dff
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_mqueue.c
@@ -0,0 +1,893 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_mqueue.c
+ * @brief Implementation of message queue functions in mqueue.h
+ */
+
+/* C standard library includes. */
+#include
+
+/* FreeRTOS+POSIX includes. */
+#include "FreeRTOS_POSIX.h"
+#include "FreeRTOS_POSIX/errno.h"
+#include "FreeRTOS_POSIX/fcntl.h"
+#include "FreeRTOS_POSIX/mqueue.h"
+#include "FreeRTOS_POSIX/utils.h"
+
+/**
+ * @brief Element of the FreeRTOS queues that store mq data.
+ */
+typedef struct QueueElement
+{
+ char * pcData; /**< Data in queue. Type char* to match msg_ptr. */
+ size_t xDataSize; /**< Size of data pointed by pcData. */
+} QueueElement_t;
+
+/**
+ * @brief Data structure of an mq.
+ *
+ * FreeRTOS isn't guaranteed to have a file-like abstraction, so message
+ * queues in this implementation are stored as a linked list (in RAM).
+ */
+typedef struct QueueListElement
+{
+ Link_t xLink; /**< Pointer to the next element in the list. */
+ QueueHandle_t xQueue; /**< FreeRTOS queue handle. */
+ size_t xOpenDescriptors; /**< Number of threads that have opened this queue. */
+ char * pcName; /**< Null-terminated queue name. */
+ struct mq_attr xAttr; /**< Queue attibutes. */
+ BaseType_t xPendingUnlink; /**< If pdTRUE, this queue will be unlinked once all descriptors close. */
+} QueueListElement_t;
+
+/*-----------------------------------------------------------*/
+
+/**
+ * @brief Convert an absolute timespec into a tick timeout, taking into account
+ * queue flags.
+ *
+ * @param[in] lMessageQueueFlags Message queue flags to consider.
+ * @param[in] pxAbsoluteTimeout The absolute timespec to convert.
+ * @param[out] pxTimeoutTicks Output parameter of the timeout in ticks.
+ *
+ * @return 0 if successful; EINVAL if pxAbsoluteTimeout is invalid, or ETIMEDOUT
+ * if pxAbsoluteTimeout is in the past.
+ */
+static int prvCalculateTickTimeout( long lMessageQueueFlags,
+ const struct timespec * const pxAbsoluteTimeout,
+ TickType_t * pxTimeoutTicks );
+
+/**
+ * @brief Add a new queue to the queue list.
+ *
+ * @param[out] ppxMessageQueue Pointer to new queue.
+ * @param[in] pxAttr mq_attr of the new queue.
+ * @param[in] pcName Name of new queue.
+ * @param[in] xNameLength Length of pcName.
+ *
+ * @return pdTRUE if the queue is found; pdFALSE otherwise.
+ */
+static BaseType_t prvCreateNewMessageQueue( QueueListElement_t ** ppxMessageQueue,
+ const struct mq_attr * const pxAttr,
+ const char * const pcName,
+ size_t xNameLength );
+
+/**
+ * @brief Free all the resources used by a message queue.
+ *
+ * @param[out] pxMessageQueue Pointer to queue to free.
+ *
+ * @return nothing
+ */
+static void prvDeleteMessageQueue( const QueueListElement_t * const pxMessageQueue );
+
+/**
+ * @brief Attempt to find the queue identified by pcName or xMqId in the queue list.
+ *
+ * Matches queues by pcName first; if pcName is NULL, matches by xMqId.
+ * @param[out] ppxQueueListElement Output parameter set when queue is found.
+ * @param[in] pcName A queue name to match.
+ * @param[in] xMessageQueueDescriptor A queue descriptor to match.
+ *
+ * @return pdTRUE if the queue is found; pdFALSE otherwise.
+ */
+static BaseType_t prvFindQueueInList( QueueListElement_t ** const ppxQueueListElement,
+ const char * const pcName,
+ mqd_t xMessageQueueDescriptor );
+
+/**
+ * @brief Initialize the queue list.
+ *
+ * Performs initialization of the queue list mutex and queue list head.
+ *
+ * @return nothing
+ */
+static void prvInitializeQueueList( void );
+
+/**
+ * @brief Checks that pcName is a valid name for a message queue.
+ *
+ * Also outputs the length of pcName.
+ * @param[in] pcName The name to check.
+ * @param[out] pxNameLength Output parameter for name length.
+ *
+ * @return pdTRUE if the name is valid; pdFALSE otherwise.
+ */
+static BaseType_t prvValidateQueueName( const char * const pcName,
+ size_t * pxNameLength );
+
+/**
+ * @brief Guards access to the list of message queues.
+ */
+static StaticSemaphore_t xQueueListMutex = { { 0 }, .u = { 0 } };
+
+/**
+ * @brief Head of the linked list of queues.
+ */
+static Link_t xQueueListHead = { 0 };
+
+/*-----------------------------------------------------------*/
+
+static int prvCalculateTickTimeout( long lMessageQueueFlags,
+ const struct timespec * const pxAbsoluteTimeout,
+ TickType_t * pxTimeoutTicks )
+{
+ int iStatus = 0;
+
+ /* Check for nonblocking queue. */
+ if( lMessageQueueFlags & O_NONBLOCK )
+ {
+ /* No additional checks are done for nonblocking queues. Timeout is 0. */
+ *pxTimeoutTicks = 0;
+ }
+ else
+ {
+ /* No absolute timeout given. Block forever. */
+ if( pxAbsoluteTimeout == NULL )
+ {
+ *pxTimeoutTicks = portMAX_DELAY;
+ }
+ else
+ {
+ struct timespec xCurrentTime = { 0 };
+
+ /* Check that the given timespec is valid. */
+ if( UTILS_ValidateTimespec( pxAbsoluteTimeout ) == false )
+ {
+ iStatus = EINVAL;
+ }
+
+ /* Get current time */
+ if( ( iStatus == 0 ) && ( clock_gettime( CLOCK_REALTIME, &xCurrentTime ) != 0 ) )
+ {
+ iStatus = EINVAL;
+ }
+
+ /* Convert absolute timespec to ticks. */
+ if( ( iStatus == 0 ) &&
+ ( UTILS_AbsoluteTimespecToDeltaTicks( pxAbsoluteTimeout, &xCurrentTime, pxTimeoutTicks ) != 0 ) )
+ {
+ iStatus = ETIMEDOUT;
+ }
+ }
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+static BaseType_t prvCreateNewMessageQueue( QueueListElement_t ** ppxMessageQueue,
+ const struct mq_attr * const pxAttr,
+ const char * const pcName,
+ size_t xNameLength )
+{
+ BaseType_t xStatus = pdTRUE;
+
+ /* Allocate space for a new queue element. */
+ *ppxMessageQueue = pvPortMalloc( sizeof( QueueListElement_t ) );
+
+ /* Check that memory allocation succeeded. */
+ if( *ppxMessageQueue == NULL )
+ {
+ xStatus = pdFALSE;
+ }
+
+ /* Create the FreeRTOS queue. */
+ if( xStatus == pdTRUE )
+ {
+ ( *ppxMessageQueue )->xQueue =
+ xQueueCreate( pxAttr->mq_maxmsg, sizeof( QueueElement_t ) );
+
+ /* Check that queue creation succeeded. */
+ if( ( *ppxMessageQueue )->xQueue == NULL )
+ {
+ vPortFree( *ppxMessageQueue );
+ xStatus = pdFALSE;
+ }
+ }
+
+ if( xStatus == pdTRUE )
+ {
+ /* Allocate space for the queue name plus null-terminator. */
+ ( *ppxMessageQueue )->pcName = pvPortMalloc( xNameLength + 1 );
+
+ /* Check that memory was successfully allocated for queue name. */
+ if( ( *ppxMessageQueue )->pcName == NULL )
+ {
+ vQueueDelete( ( *ppxMessageQueue )->xQueue );
+ vPortFree( *ppxMessageQueue );
+ xStatus = pdFALSE;
+ }
+ else
+ {
+ /* Copy queue name. Copying xNameLength+1 will cause strncpy to add
+ * the null-terminator. */
+ ( void ) strncpy( ( *ppxMessageQueue )->pcName, pcName, xNameLength + 1 );
+ }
+ }
+
+ if( xStatus == pdTRUE )
+ {
+ /* Copy attributes. */
+ ( *ppxMessageQueue )->xAttr = *pxAttr;
+
+ /* A newly-created queue will have 1 open descriptor for it. */
+ ( *ppxMessageQueue )->xOpenDescriptors = 1;
+
+ /* A newly-created queue will not be pending unlink. */
+ ( *ppxMessageQueue )->xPendingUnlink = pdFALSE;
+
+ /* Add the new queue to the list. */
+ listADD( &xQueueListHead, &( *ppxMessageQueue )->xLink );
+ }
+
+ return xStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+static void prvDeleteMessageQueue( const QueueListElement_t * const pxMessageQueue )
+{
+ QueueElement_t xQueueElement = { 0 };
+
+ /* Free all data in the queue. It's assumed that no more data will be added
+ * to the queue, so xQueueReceive does not block. */
+ while( xQueueReceive( pxMessageQueue->xQueue,
+ ( void * ) &xQueueElement,
+ 0 ) == pdTRUE )
+ {
+ vPortFree( xQueueElement.pcData );
+ }
+
+ /* Free memory used by this message queue. */
+ vQueueDelete( pxMessageQueue->xQueue );
+ vPortFree( ( void * ) pxMessageQueue->pcName );
+ vPortFree( ( void * ) pxMessageQueue );
+}
+
+/*-----------------------------------------------------------*/
+
+static BaseType_t prvFindQueueInList( QueueListElement_t ** const ppxQueueListElement,
+ const char * const pcName,
+ mqd_t xMessageQueueDescriptor )
+{
+ Link_t * pxQueueListLink = NULL;
+ QueueListElement_t * pxMessageQueue = NULL;
+ BaseType_t xQueueFound = pdFALSE;
+
+ /* Iterate through the list of queues. */
+ listFOR_EACH( pxQueueListLink, &xQueueListHead )
+ {
+ pxMessageQueue = listCONTAINER( pxQueueListLink, QueueListElement_t, xLink );
+
+ /* Match by name first if provided. */
+ if( ( pcName != NULL ) && ( strcmp( pxMessageQueue->pcName, pcName ) == 0 ) )
+ {
+ xQueueFound = pdTRUE;
+ break;
+ }
+ /* If name doesn't match, match by descriptor. */
+ else
+ {
+ if( ( mqd_t ) pxMessageQueue == xMessageQueueDescriptor )
+ {
+ xQueueFound = pdTRUE;
+ break;
+ }
+ }
+ }
+
+ /* If the queue was found, set the output parameter. */
+ if( ( xQueueFound == pdTRUE ) && ( ppxQueueListElement != NULL ) )
+ {
+ *ppxQueueListElement = pxMessageQueue;
+ }
+
+ return xQueueFound;
+}
+
+/*-----------------------------------------------------------*/
+
+static void prvInitializeQueueList( void )
+{
+ /* Keep track of whether the queue list has been initialized. */
+ static BaseType_t xQueueListInitialized = pdFALSE;
+
+ /* Check if queue list needs to be initialized. */
+ if( xQueueListInitialized == pdFALSE )
+ {
+ /* Initialization must be in a critical section to prevent two threads
+ * from initializing at the same time. */
+ taskENTER_CRITICAL();
+
+ /* Check again that queue list is still uninitialized, i.e. it wasn't
+ * initialized while this function was waiting to enter the critical
+ * section. */
+ if( xQueueListInitialized == pdFALSE )
+ {
+ /* Initialize the queue list mutex and list head. */
+ ( void ) xSemaphoreCreateMutexStatic( &xQueueListMutex );
+ listINIT_HEAD( &xQueueListHead );
+ xQueueListInitialized = pdTRUE;
+ }
+
+ /* Exit the critical section. */
+ taskEXIT_CRITICAL();
+ }
+}
+
+/*-----------------------------------------------------------*/
+
+static BaseType_t prvValidateQueueName( const char * const pcName,
+ size_t * pxNameLength )
+{
+ BaseType_t xStatus = pdTRUE;
+ size_t xNameLength = 0;
+
+ /* All message queue names must start with '/'. */
+ if( pcName[ 0 ] != '/' )
+ {
+ xStatus = pdFALSE;
+ }
+ else
+ {
+ /* Get the length of pcName, excluding the first '/' and null-terminator. */
+ xNameLength = UTILS_strnlen( pcName, NAME_MAX + 2 );
+
+ if( xNameLength == NAME_MAX + 2 )
+ {
+ /* Name too long. */
+ xStatus = pdFALSE;
+ }
+ else
+ {
+ /* Name length passes, set output parameter. */
+ *pxNameLength = xNameLength;
+ }
+ }
+
+ return xStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int mq_close( mqd_t mqdes )
+{
+ int iStatus = 0;
+ QueueListElement_t * pxMessageQueue = ( QueueListElement_t * ) mqdes;
+ BaseType_t xQueueRemoved = pdFALSE;
+
+ /* Initialize the queue list, if needed. */
+ prvInitializeQueueList();
+
+ /* Lock the mutex that guards access to the queue list. This call will
+ * never fail because it blocks forever. */
+ ( void ) xSemaphoreTake( ( SemaphoreHandle_t ) &xQueueListMutex, portMAX_DELAY );
+
+ /* Attempt to find the message queue based on the given descriptor. */
+ if( prvFindQueueInList( NULL, NULL, mqdes ) == pdTRUE )
+ {
+ /* Decrement the number of open descriptors. */
+ if( pxMessageQueue->xOpenDescriptors > 0 )
+ {
+ pxMessageQueue->xOpenDescriptors--;
+ }
+
+ /* Check if the queue has any more open descriptors. */
+ if( pxMessageQueue->xOpenDescriptors == 0 )
+ {
+ /* If no open descriptors remain and mq_unlink has already been called,
+ * remove the queue. */
+ if( pxMessageQueue->xPendingUnlink == pdTRUE )
+ {
+ listREMOVE( &pxMessageQueue->xLink );
+
+ /* Set the flag to delete the queue. Deleting the queue is deferred
+ * until xQueueListMutex is released. */
+ xQueueRemoved = pdTRUE;
+ }
+ /* Otherwise, wait for the call to mq_unlink. */
+ else
+ {
+ pxMessageQueue->xPendingUnlink = pdTRUE;
+ }
+ }
+ }
+ else
+ {
+ /* Queue not found; bad descriptor. */
+ errno = EBADF;
+ iStatus = -1;
+ }
+
+ /* Release the mutex protecting the queue list. */
+ ( void ) xSemaphoreGive( ( SemaphoreHandle_t ) &xQueueListMutex );
+
+ /* Delete all resources used by the queue if needed. */
+ if( xQueueRemoved == pdTRUE )
+ {
+ prvDeleteMessageQueue( pxMessageQueue );
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int mq_getattr( mqd_t mqdes,
+ struct mq_attr * mqstat )
+{
+ int iStatus = 0;
+ QueueListElement_t * pxMessageQueue = ( QueueListElement_t * ) mqdes;
+
+ /* Lock the mutex that guards access to the queue list. This call will
+ * never fail because it blocks forever. */
+ ( void ) xSemaphoreTake( ( SemaphoreHandle_t ) &xQueueListMutex, portMAX_DELAY );
+
+ /* Find the mq referenced by mqdes. */
+ if( prvFindQueueInList( NULL, NULL, mqdes ) == pdTRUE )
+ {
+ /* Update the number of messages in the queue and copy the attributes
+ * into mqstat. */
+ pxMessageQueue->xAttr.mq_curmsgs = ( long ) uxQueueMessagesWaiting( pxMessageQueue->xQueue );
+ *mqstat = pxMessageQueue->xAttr;
+ }
+ else
+ {
+ /* Queue not found; bad descriptor. */
+ errno = EBADF;
+ iStatus = -1;
+ }
+
+ /* Release the mutex protecting the queue list. */
+ ( void ) xSemaphoreGive( ( SemaphoreHandle_t ) &xQueueListMutex );
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+mqd_t mq_open( const char * name,
+ int oflag,
+ mode_t mode,
+ struct mq_attr * attr )
+{
+ mqd_t xMessageQueue = NULL;
+ size_t xNameLength = 0;
+
+ /* Default mq_attr. */
+ struct mq_attr xQueueCreationAttr =
+ {
+ .mq_flags = 0,
+ .mq_maxmsg = posixconfigMQ_MAX_MESSAGES,
+ .mq_msgsize = posixconfigMQ_MAX_SIZE,
+ .mq_curmsgs = 0
+ };
+
+ /* Silence warnings about unused parameters. */
+ ( void ) mode;
+
+ /* Initialize the queue list, if needed. */
+ prvInitializeQueueList();
+
+ /* Check queue name. */
+ if( prvValidateQueueName( name, &xNameLength ) == pdFALSE )
+ {
+ /* Invalid name. */
+ errno = EINVAL;
+ xMessageQueue = ( mqd_t ) -1;
+ }
+
+ /* Check attributes, if given. */
+ if( xMessageQueue == NULL )
+ {
+ if( ( oflag & O_CREAT ) && ( attr != NULL ) && ( ( attr->mq_maxmsg <= 0 ) || ( attr->mq_msgsize <= 0 ) ) )
+ {
+ /* Invalid mq_attr.mq_maxmsg or mq_attr.mq_msgsize. */
+ errno = EINVAL;
+ xMessageQueue = ( mqd_t ) -1;
+ }
+ }
+
+ if( xMessageQueue == NULL )
+ {
+ /* Lock the mutex that guards access to the queue list. This call will
+ * never fail because it blocks forever. */
+ ( void ) xSemaphoreTake( ( SemaphoreHandle_t ) &xQueueListMutex, portMAX_DELAY );
+
+ /* Search the queue list to check if the queue exists. */
+ if( prvFindQueueInList( ( QueueListElement_t ** ) &xMessageQueue,
+ name,
+ ( mqd_t ) NULL ) == pdTRUE )
+ {
+ /* If the mq exists, check that this function wasn't called with
+ * O_CREAT and O_EXCL. */
+ if( ( oflag & O_EXCL ) && ( oflag & O_CREAT ) )
+ {
+ errno = EEXIST;
+ xMessageQueue = ( mqd_t ) -1;
+ }
+ else
+ {
+ /* Check if the mq has been unlinked and is pending removal. */
+ if( ( ( QueueListElement_t * ) xMessageQueue )->xPendingUnlink == pdTRUE )
+ {
+ /* Queue pending deletion. Don't allow it to be re-opened. */
+ errno = EINVAL;
+ xMessageQueue = ( mqd_t ) -1;
+ }
+ else
+ {
+ /* Increase count of open file descriptors for queue. */
+ ( ( QueueListElement_t * ) xMessageQueue )->xOpenDescriptors++;
+ }
+ }
+ }
+ /* Queue does not exist. */
+ else
+ {
+ /* Only create the new queue if O_CREAT was specified. */
+ if( oflag & O_CREAT )
+ {
+ /* Copy attributes if provided. */
+ if( attr != NULL )
+ {
+ xQueueCreationAttr = *attr;
+ }
+
+ /* Copy oflags. */
+ xQueueCreationAttr.mq_flags = ( long ) oflag;
+
+ /* Create the new message queue. */
+ if( prvCreateNewMessageQueue( ( QueueListElement_t ** ) &xMessageQueue,
+ &xQueueCreationAttr,
+ name,
+ xNameLength ) == pdFALSE )
+ {
+ errno = ENOSPC;
+ xMessageQueue = ( mqd_t ) -1;
+ }
+ }
+ else
+ {
+ errno = ENOENT;
+ xMessageQueue = ( mqd_t ) -1;
+ }
+ }
+
+ /* Release the mutex protecting the queue list. */
+ ( void ) xSemaphoreGive( ( SemaphoreHandle_t ) &xQueueListMutex );
+ }
+
+ return xMessageQueue;
+}
+
+/*-----------------------------------------------------------*/
+
+ssize_t mq_receive( mqd_t mqdes,
+ char * msg_ptr,
+ size_t msg_len,
+ unsigned int * msg_prio )
+{
+ return mq_timedreceive( mqdes, msg_ptr, msg_len, msg_prio, NULL );
+}
+
+/*-----------------------------------------------------------*/
+
+int mq_send( mqd_t mqdes,
+ const char * msg_ptr,
+ size_t msg_len,
+ unsigned msg_prio )
+{
+ return mq_timedsend( mqdes, msg_ptr, msg_len, msg_prio, NULL );
+}
+
+/*-----------------------------------------------------------*/
+
+ssize_t mq_timedreceive( mqd_t mqdes,
+ char * msg_ptr,
+ size_t msg_len,
+ unsigned * msg_prio,
+ const struct timespec * abstime )
+{
+ ssize_t xStatus = 0;
+ int iCalculateTimeoutReturn = 0;
+ TickType_t xTimeoutTicks = 0;
+ QueueListElement_t * pxMessageQueue = ( QueueListElement_t * ) mqdes;
+ QueueElement_t xReceiveData = { 0 };
+
+ /* Silence warnings about unused parameters. */
+ ( void ) msg_prio;
+
+ /* Lock the mutex that guards access to the queue list. This call will
+ * never fail because it blocks forever. */
+ ( void ) xSemaphoreTake( ( SemaphoreHandle_t ) &xQueueListMutex, portMAX_DELAY );
+
+ /* Find the mq referenced by mqdes. */
+ if( prvFindQueueInList( NULL, NULL, mqdes ) == pdFALSE )
+ {
+ /* Queue not found; bad descriptor. */
+ errno = EBADF;
+ xStatus = -1;
+ }
+
+ /* Verify that msg_len is large enough. */
+ if( xStatus == 0 )
+ {
+ if( msg_len < ( size_t ) pxMessageQueue->xAttr.mq_msgsize )
+ {
+ /* msg_len too small. */
+ errno = EMSGSIZE;
+ xStatus = -1;
+ }
+ }
+
+ if( xStatus == 0 )
+ {
+ /* Convert abstime to a tick timeout. */
+ iCalculateTimeoutReturn = prvCalculateTickTimeout( pxMessageQueue->xAttr.mq_flags,
+ abstime,
+ &xTimeoutTicks );
+
+ if( iCalculateTimeoutReturn != 0 )
+ {
+ errno = iCalculateTimeoutReturn;
+ xStatus = -1;
+ }
+ }
+
+ /* Release the mutex protecting the queue list. */
+ ( void ) xSemaphoreGive( ( SemaphoreHandle_t ) &xQueueListMutex );
+
+ if( xStatus == 0 )
+ {
+ /* Receive data from the FreeRTOS queue. */
+ if( xQueueReceive( pxMessageQueue->xQueue,
+ &xReceiveData,
+ xTimeoutTicks ) == pdFALSE )
+ {
+ /* If queue receive fails, set the appropriate errno. */
+ if( pxMessageQueue->xAttr.mq_flags & O_NONBLOCK )
+ {
+ /* Set errno to EAGAIN for nonblocking mq. */
+ errno = EAGAIN;
+ }
+ else
+ {
+ /* Otherwise, set errno to ETIMEDOUT. */
+ errno = ETIMEDOUT;
+ }
+
+ xStatus = -1;
+ }
+ }
+
+ if( xStatus == 0 )
+ {
+ /* Get the length of data for return value. */
+ xStatus = ( ssize_t ) xReceiveData.xDataSize;
+
+ /* Copy received data into given buffer, then free it. */
+ ( void ) memcpy( msg_ptr, xReceiveData.pcData, xReceiveData.xDataSize );
+ vPortFree( xReceiveData.pcData );
+ }
+
+ return xStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int mq_timedsend( mqd_t mqdes,
+ const char * msg_ptr,
+ size_t msg_len,
+ unsigned int msg_prio,
+ const struct timespec * abstime )
+{
+ int iStatus = 0, iCalculateTimeoutReturn = 0;
+ TickType_t xTimeoutTicks = 0;
+ QueueListElement_t * pxMessageQueue = ( QueueListElement_t * ) mqdes;
+ QueueElement_t xSendData = { 0 };
+
+ /* Silence warnings about unused parameters. */
+ ( void ) msg_prio;
+
+ /* Lock the mutex that guards access to the queue list. This call will
+ * never fail because it blocks forever. */
+ ( void ) xSemaphoreTake( ( SemaphoreHandle_t ) &xQueueListMutex, portMAX_DELAY );
+
+ /* Find the mq referenced by mqdes. */
+ if( prvFindQueueInList( NULL, NULL, mqdes ) == pdFALSE )
+ {
+ /* Queue not found; bad descriptor. */
+ errno = EBADF;
+ iStatus = -1;
+ }
+
+ /* Verify that mq_msgsize is large enough. */
+ if( iStatus == 0 )
+ {
+ if( msg_len > ( size_t ) pxMessageQueue->xAttr.mq_msgsize )
+ {
+ /* msg_len too large. */
+ errno = EMSGSIZE;
+ iStatus = -1;
+ }
+ }
+
+ if( iStatus == 0 )
+ {
+ /* Convert abstime to a tick timeout. */
+ iCalculateTimeoutReturn = prvCalculateTickTimeout( pxMessageQueue->xAttr.mq_flags,
+ abstime,
+ &xTimeoutTicks );
+
+ if( iCalculateTimeoutReturn != 0 )
+ {
+ errno = iCalculateTimeoutReturn;
+ iStatus = -1;
+ }
+ }
+
+ /* Release the mutex protecting the queue list. */
+ ( void ) xSemaphoreGive( ( SemaphoreHandle_t ) &xQueueListMutex );
+
+ /* Allocate memory for the message. */
+ if( iStatus == 0 )
+ {
+ xSendData.xDataSize = msg_len;
+ xSendData.pcData = pvPortMalloc( msg_len );
+
+ /* Check that memory allocation succeeded. */
+ if( xSendData.pcData == NULL )
+ {
+ /* msg_len too large. */
+ errno = EMSGSIZE;
+ iStatus = -1;
+ }
+ else
+ {
+ /* Copy the data to send. */
+ ( void ) memcpy( xSendData.pcData, msg_ptr, msg_len );
+ }
+ }
+
+ if( iStatus == 0 )
+ {
+ /* Send data to the FreeRTOS queue. */
+ if( xQueueSend( pxMessageQueue->xQueue,
+ &xSendData,
+ xTimeoutTicks ) == pdFALSE )
+ {
+ /* If queue send fails, set the appropriate errno. */
+ if( pxMessageQueue->xAttr.mq_flags & O_NONBLOCK )
+ {
+ /* Set errno to EAGAIN for nonblocking mq. */
+ errno = EAGAIN;
+ }
+ else
+ {
+ /* Otherwise, set errno to ETIMEDOUT. */
+ errno = ETIMEDOUT;
+ }
+
+ /* Free the allocated queue data. */
+ vPortFree( xSendData.pcData );
+
+ iStatus = -1;
+ }
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int mq_unlink( const char * name )
+{
+ int iStatus = 0;
+ size_t xNameSize = 0;
+ BaseType_t xQueueRemoved = pdFALSE;
+ QueueListElement_t * pxMessageQueue = NULL;
+
+ /* Initialize the queue list, if needed. */
+ prvInitializeQueueList();
+
+ /* Check queue name. */
+ if( prvValidateQueueName( name, &xNameSize ) == pdFALSE )
+ {
+ /* Error with mq name. */
+ errno = EINVAL;
+ iStatus = -1;
+ }
+
+ if( iStatus == 0 )
+ {
+ /* Lock the mutex that guards access to the queue list. This call will
+ * never fail because it blocks forever. */
+ ( void ) xSemaphoreTake( ( SemaphoreHandle_t ) &xQueueListMutex, portMAX_DELAY );
+
+ /* Check if the named queue exists. */
+ if( prvFindQueueInList( &pxMessageQueue, name, ( mqd_t ) NULL ) == pdTRUE )
+ {
+ /* If the queue exists and there are no open descriptors to it,
+ * remove it from the list. */
+ if( pxMessageQueue->xOpenDescriptors == 0 )
+ {
+ listREMOVE( &pxMessageQueue->xLink );
+
+ /* Set the flag to delete the queue. Deleting the queue is deferred
+ * until xQueueListMutex is released. */
+ xQueueRemoved = pdTRUE;
+ }
+ else
+ {
+ /* If the queue has open descriptors, set the pending unlink flag
+ * so that mq_close will free its resources. */
+ pxMessageQueue->xPendingUnlink = pdTRUE;
+ }
+ }
+ else
+ {
+ /* The named message queue doesn't exist. */
+ errno = ENOENT;
+ iStatus = -1;
+ }
+
+ /* Release the mutex protecting the queue list. */
+ ( void ) xSemaphoreGive( ( SemaphoreHandle_t ) &xQueueListMutex );
+ }
+
+ /* Delete all resources used by the queue if needed. */
+ if( xQueueRemoved == pdTRUE )
+ {
+ prvDeleteMessageQueue( pxMessageQueue );
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread.c b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread.c
new file mode 100644
index 0000000000000000000000000000000000000000..f063160a5083b3c764d3f1906b3b5fdbaca817b4
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread.c
@@ -0,0 +1,569 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_pthread.c
+ * @brief Implementation of thread functions in pthread.h
+ */
+
+/* C standard library includes. */
+#include
+#include
+
+/* FreeRTOS+POSIX includes. */
+#include "FreeRTOS_POSIX.h"
+#include "FreeRTOS_POSIX/errno.h"
+#include "FreeRTOS_POSIX/pthread.h"
+
+/**
+ * @brief Thread attribute object.
+ */
+typedef struct pthread_attr_internal
+{
+ uint16_t usStackSize; /**< Stack size. */
+ uint16_t usSchedPriorityDetachState; /**< Schedule priority 15 bits (LSB) Detach state: 1 bits (MSB) */
+} pthread_attr_internal_t;
+
+#define pthreadDETACH_STATE_MASK 0x8000
+#define pthreadSCHED_PRIORITY_MASK 0x7FFF
+#define pthreadDETACH_STATE_SHIFT 15
+#define pthreadGET_SCHED_PRIORITY( var ) ( ( var ) & ( pthreadSCHED_PRIORITY_MASK ) )
+#define pthreadIS_JOINABLE( var ) ( ( ( var ) & ( pthreadDETACH_STATE_MASK ) ) == pthreadDETACH_STATE_MASK )
+
+/**
+ * @brief Thread object.
+ */
+typedef struct pthread_internal
+{
+ pthread_attr_internal_t xAttr; /**< Thread attributes. */
+ void * ( *pvStartRoutine )( void * ); /**< Application thread function. */
+ void * xTaskArg; /**< Arguments for application thread function. */
+ TaskHandle_t xTaskHandle; /**< FreeRTOS task handle. */
+ StaticSemaphore_t xJoinBarrier; /**< Synchronizes the two callers of pthread_join. */
+ StaticSemaphore_t xJoinMutex; /**< Ensures that only one other thread may join this thread. */
+ void * xReturn; /**< Return value of pvStartRoutine. */
+} pthread_internal_t;
+
+/**
+ * @brief Terminates the calling thread.
+ *
+ * For joinable threads, this function waits for pthread_join. Otherwise,
+ * it deletes the thread and frees up resources used by the thread.
+ *
+ * @return This function does not return.
+ */
+static void prvExitThread( void );
+
+/**
+ * @brief Wrapper function for the user's thread routine.
+ *
+ * This function is executed as a FreeRTOS task function.
+ * @param[in] pxArg A pointer to a pthread_internal_t.
+ *
+ * @return nothing
+ */
+static void prvRunThread( void * pxArg );
+
+/**
+ * @brief Default pthread_attr_t.
+ */
+static const pthread_attr_internal_t xDefaultThreadAttributes =
+{
+ .usStackSize = PTHREAD_STACK_MIN,
+ .usSchedPriorityDetachState = ( ( uint16_t ) tskIDLE_PRIORITY & pthreadSCHED_PRIORITY_MASK ) | ( PTHREAD_CREATE_JOINABLE << pthreadDETACH_STATE_SHIFT ),
+};
+
+/*-----------------------------------------------------------*/
+
+static void prvExitThread( void )
+{
+ pthread_internal_t * pxThread = ( pthread_internal_t * ) pthread_self();
+
+ /* If this thread is joinable, wait for a call to pthread_join. */
+ if( pthreadIS_JOINABLE( pxThread->xAttr.usSchedPriorityDetachState ) )
+ {
+ ( void ) xSemaphoreGive( ( SemaphoreHandle_t ) &pxThread->xJoinBarrier );
+
+ /* Suspend until the call to pthread_join. The caller of pthread_join
+ * will perform cleanup. */
+ vTaskSuspend( NULL );
+ }
+ else
+ {
+ /* For a detached thread, perform cleanup of thread object. */
+ vPortFree( pxThread );
+ vTaskDelete( NULL );
+ }
+}
+
+/*-----------------------------------------------------------*/
+
+static void prvRunThread( void * pxArg )
+{
+ pthread_internal_t * pxThread = ( pthread_internal_t * ) pxArg;
+
+ /* Run the thread routine. */
+ pxThread->xReturn = pxThread->pvStartRoutine( ( void * ) pxThread->xTaskArg );
+
+ /* Exit once finished. This function does not return. */
+ prvExitThread();
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_attr_destroy( pthread_attr_t * attr )
+{
+ ( void ) attr;
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_attr_getdetachstate( const pthread_attr_t * attr,
+ int * detachstate )
+{
+ pthread_attr_internal_t * pxAttr = ( pthread_attr_internal_t * ) ( attr );
+
+ if( pthreadIS_JOINABLE( pxAttr->usSchedPriorityDetachState ) )
+ {
+ *detachstate = PTHREAD_CREATE_JOINABLE;
+ }
+ else
+ {
+ *detachstate = PTHREAD_CREATE_DETACHED;
+ }
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_attr_getschedparam( const pthread_attr_t * attr,
+ struct sched_param * param )
+{
+ pthread_attr_internal_t * pxAttr = ( pthread_attr_internal_t * ) ( attr );
+
+ param->sched_priority = ( int ) ( pthreadGET_SCHED_PRIORITY( pxAttr->usSchedPriorityDetachState ) );
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_attr_getstacksize( const pthread_attr_t * attr,
+ size_t * stacksize )
+{
+ pthread_attr_internal_t * pxAttr = ( pthread_attr_internal_t * ) ( attr );
+
+ *stacksize = ( size_t ) pxAttr->usStackSize;
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_attr_init( pthread_attr_t * attr )
+{
+ /* Copy the default values into the new thread attributes object. */
+ *( ( pthread_attr_internal_t * ) ( attr ) ) = xDefaultThreadAttributes;
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_attr_setdetachstate( pthread_attr_t * attr,
+ int detachstate )
+{
+ int iStatus = 0;
+ pthread_attr_internal_t * pxAttr = ( pthread_attr_internal_t * ) ( attr );
+
+ if( ( detachstate != PTHREAD_CREATE_DETACHED ) && ( detachstate != PTHREAD_CREATE_JOINABLE ) )
+ {
+ iStatus = EINVAL;
+ }
+ else
+ {
+ /* clear and then set msb bit to detachstate) */
+ pxAttr->usSchedPriorityDetachState &= ~pthreadDETACH_STATE_MASK;
+ pxAttr->usSchedPriorityDetachState |= ( ( uint16_t ) detachstate << pthreadDETACH_STATE_SHIFT );
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_attr_setschedparam( pthread_attr_t * attr,
+ const struct sched_param * param )
+{
+ int iStatus = 0;
+ pthread_attr_internal_t * pxAttr = ( pthread_attr_internal_t * ) ( attr );
+
+ /* Check for NULL param. */
+ if( param == NULL )
+ {
+ iStatus = EINVAL;
+ }
+
+ /* Ensure that param.sched_priority is valid. */
+ if( ( iStatus == 0 ) &&
+ ( ( param->sched_priority > sched_get_priority_max( SCHED_OTHER ) ) ||
+ ( param->sched_priority < 0 ) ) )
+ {
+ iStatus = ENOTSUP;
+ }
+
+ /* Set the sched_param. */
+ if( iStatus == 0 )
+ {
+ /* clear and then set 15 LSB to schedule priority) */
+ pxAttr->usSchedPriorityDetachState &= ~pthreadSCHED_PRIORITY_MASK;
+ pxAttr->usSchedPriorityDetachState |= ( ( uint16_t ) param->sched_priority );
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_attr_setschedpolicy( pthread_attr_t * attr,
+ int policy )
+{
+ /* Silence warnings about unused parameters. */
+ ( void ) attr;
+ ( void ) policy;
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_attr_setstacksize( pthread_attr_t * attr,
+ size_t stacksize )
+{
+ int iStatus = 0;
+ pthread_attr_internal_t * pxAttr = ( pthread_attr_internal_t * ) ( attr );
+
+ if( stacksize < PTHREAD_STACK_MIN )
+ {
+ iStatus = EINVAL;
+ }
+ else
+ {
+ pxAttr->usStackSize = ( uint16_t ) stacksize;
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_create( pthread_t * thread,
+ const pthread_attr_t * attr,
+ void *( *startroutine )( void * ),
+ void * arg )
+{
+ int iStatus = 0;
+ pthread_internal_t * pxThread = NULL;
+ struct sched_param xSchedParam = { .sched_priority = tskIDLE_PRIORITY };
+
+ /* Allocate memory for new thread object. */
+ pxThread = ( pthread_internal_t * ) pvPortMalloc( sizeof( pthread_internal_t ) );
+
+ if( pxThread == NULL )
+ {
+ /* No memory. */
+ iStatus = EAGAIN;
+ }
+
+ if( iStatus == 0 )
+ {
+ /* No attributes given, use default attributes. */
+ if( attr == NULL )
+ {
+ pxThread->xAttr = xDefaultThreadAttributes;
+ }
+ /* Otherwise, use provided attributes. */
+ else
+ {
+ pxThread->xAttr = *( ( pthread_attr_internal_t * ) ( attr ) );
+ }
+
+ /* Get priority from attributes */
+ xSchedParam.sched_priority = ( int ) pthreadGET_SCHED_PRIORITY( pxThread->xAttr.usSchedPriorityDetachState );
+
+ /* Set argument and start routine. */
+ pxThread->xTaskArg = arg;
+ pxThread->pvStartRoutine = startroutine;
+
+ /* If this thread is joinable, create the synchronization mechanisms for
+ * pthread_join. */
+
+ if( pthreadIS_JOINABLE( pxThread->xAttr.usSchedPriorityDetachState ) )
+ {
+ /* These calls will not fail when their arguments aren't NULL. */
+ ( void ) xSemaphoreCreateMutexStatic( &pxThread->xJoinMutex );
+ ( void ) xSemaphoreCreateBinaryStatic( &pxThread->xJoinBarrier );
+ }
+ }
+
+ if( iStatus == 0 )
+ {
+ /* Suspend all tasks to create a critical section. This ensures that
+ * the new thread doesn't exit before a tag is assigned. */
+ vTaskSuspendAll();
+
+ /* Create the FreeRTOS task that will run the pthread. */
+ if( xTaskCreate( prvRunThread,
+ posixconfigPTHREAD_TASK_NAME,
+ ( uint16_t ) ( pxThread->xAttr.usStackSize / sizeof( StackType_t ) ),
+ ( void * ) pxThread,
+ xSchedParam.sched_priority,
+ &pxThread->xTaskHandle ) != pdPASS )
+ {
+ /* Task creation failed, no memory. */
+ vPortFree( pxThread );
+ iStatus = EAGAIN;
+ }
+ else
+ {
+ /* Store the pointer to the thread object in the task tag. */
+ vTaskSetApplicationTaskTag( pxThread->xTaskHandle, ( TaskHookFunction_t ) pxThread );
+
+ /* Set the thread object for the user. */
+ *thread = ( pthread_t ) pxThread;
+ }
+
+ /* End the critical section. */
+ xTaskResumeAll();
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_getschedparam( pthread_t thread,
+ int * policy,
+ struct sched_param * param )
+{
+ int iStatus = 0;
+ pthread_internal_t * pxThread = ( pthread_internal_t * ) thread;
+
+ *policy = SCHED_OTHER;
+ param->sched_priority = ( int ) pthreadGET_SCHED_PRIORITY( pxThread->xAttr.usSchedPriorityDetachState );
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_equal( pthread_t t1,
+ pthread_t t2 )
+{
+ return t1 == t2;
+}
+
+/*-----------------------------------------------------------*/
+
+void pthread_exit( void * value_ptr )
+{
+ pthread_internal_t * pxThread = ( pthread_internal_t * ) pthread_self();
+
+ /* Set the return value. */
+ pxThread->xReturn = value_ptr;
+
+ /* Exit this thread. */
+ prvExitThread();
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_join( pthread_t pthread,
+ void ** retval )
+{
+ int iStatus = 0;
+ pthread_internal_t * pxThread = ( pthread_internal_t * ) pthread;
+
+ /* Make sure pthread is joinable. Otherwise, this function would block
+ * forever waiting for an unjoinable thread. */
+ if( !pthreadIS_JOINABLE( pxThread->xAttr.usSchedPriorityDetachState ) )
+ {
+ iStatus = EDEADLK;
+ }
+
+ /* Only one thread may attempt to join another. Lock the join mutex
+ * to prevent other threads from calling pthread_join on the same thread. */
+ if( iStatus == 0 )
+ {
+ if( xSemaphoreTake( ( SemaphoreHandle_t ) &pxThread->xJoinMutex, 0 ) != pdPASS )
+ {
+ /* Another thread has already joined the requested thread, which would
+ * cause this thread to wait forever. */
+ iStatus = EDEADLK;
+ }
+ }
+
+ /* Attempting to join the calling thread would cause a deadlock. */
+ if( iStatus == 0 )
+ {
+ if( pthread_equal( pthread_self(), pthread ) != 0 )
+ {
+ iStatus = EDEADLK;
+ }
+ }
+
+ if( iStatus == 0 )
+ {
+ /* Wait for the joining thread to finish. Because this call waits forever,
+ * it should never fail. */
+ ( void ) xSemaphoreTake( ( SemaphoreHandle_t ) &pxThread->xJoinBarrier, portMAX_DELAY );
+
+ /* Create a critical section to clean up the joined thread. */
+ vTaskSuspendAll();
+
+ /* Release xJoinBarrier and delete it. */
+ ( void ) xSemaphoreGive( ( SemaphoreHandle_t ) &pxThread->xJoinBarrier );
+ vSemaphoreDelete( ( SemaphoreHandle_t ) &pxThread->xJoinBarrier );
+
+ /* Release xJoinMutex and delete it. */
+ ( void ) xSemaphoreGive( ( SemaphoreHandle_t ) &pxThread->xJoinMutex );
+ vSemaphoreDelete( ( SemaphoreHandle_t ) &pxThread->xJoinMutex );
+
+ /* Delete the FreeRTOS task that ran the thread. */
+ vTaskDelete( pxThread->xTaskHandle );
+
+ /* Set the return value. */
+ if( retval != NULL )
+ {
+ *retval = pxThread->xReturn;
+ }
+
+ /* Free the thread object. */
+ vPortFree( pxThread );
+
+ /* End the critical section. */
+ xTaskResumeAll();
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_detach(pthread_t pthread)
+{
+ int iStatus = 0;
+ pthread_internal_t * pxThread = ( pthread_internal_t * ) pthread;
+ eTaskState pThreadState;
+
+ /* Make sure pthread is joinable. */
+ if( !pthreadIS_JOINABLE( pxThread->xAttr.usSchedPriorityDetachState ) )
+ {
+ iStatus = EINVAL;
+ }
+
+ if ( iStatus == 0 )
+ {
+ /* Create a critical section to verify that pthread is joinable. */
+ vTaskSuspendAll();
+
+ pThreadState = eTaskGetState(pxThread->xTaskHandle);
+
+ /* Thread has been deleted or is invalid. */
+ if ( (pThreadState == eDeleted) || (pThreadState == eInvalid) )
+ {
+ iStatus = EINVAL;
+ }
+ else
+ {
+ /* Release xJoinBarrier and delete it. */
+ ( void ) xSemaphoreGive( ( SemaphoreHandle_t ) &pxThread->xJoinBarrier );
+ vSemaphoreDelete( ( SemaphoreHandle_t ) &pxThread->xJoinBarrier );
+
+ /* Release xJoinMutex and delete it. */
+ ( void ) xSemaphoreGive( ( SemaphoreHandle_t ) &pxThread->xJoinMutex );
+ vSemaphoreDelete( ( SemaphoreHandle_t ) &pxThread->xJoinMutex );
+
+ /* Thread has been finished */
+ if ( pThreadState == eSuspended )
+ {
+ /* Delete the FreeRTOS task that ran the thread. */
+ vTaskDelete( pxThread->xTaskHandle );
+
+ /* Free the thread object. */
+ vPortFree( pxThread );
+ }
+ else
+ {
+ /* Thread is in the running or ready state. */
+ pthread_attr_setdetachstate( (pthread_attr_t *) &pxThread->xAttr, PTHREAD_CREATE_DETACHED );
+ }
+ }
+
+ /* End the critical section. */
+ xTaskResumeAll();
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+pthread_t pthread_self( void )
+{
+ /* Return a reference to this pthread object, which is stored in the
+ * FreeRTOS task tag. */
+ return ( pthread_t ) xTaskGetApplicationTaskTag( NULL );
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_setschedparam( pthread_t thread,
+ int policy,
+ const struct sched_param * param )
+{
+ int iStatus = 0;
+
+ pthread_internal_t * pxThread = ( pthread_internal_t * ) thread;
+
+ /* Silence compiler warnings about unused parameters. */
+ ( void ) policy;
+
+ /* Copy the given sched_param. */
+ iStatus = pthread_attr_setschedparam( ( pthread_attr_t * ) &pxThread->xAttr, param );
+
+ if( iStatus == 0 )
+ {
+ /* Change the priority of the FreeRTOS task. */
+ vTaskPrioritySet( pxThread->xTaskHandle, param->sched_priority );
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread_barrier.c b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread_barrier.c
new file mode 100644
index 0000000000000000000000000000000000000000..2b621cb9300d5ab19c6aaa0800336b537f64ba35
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread_barrier.c
@@ -0,0 +1,167 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_pthread_barrier.c
+ * @brief Implementation of barrier functions in pthread.h
+ */
+
+/* C standard library includes. */
+#include
+
+/* FreeRTOS+POSIX includes. */
+#include "FreeRTOS_POSIX.h"
+#include "FreeRTOS_POSIX/errno.h"
+#include "FreeRTOS_POSIX/pthread.h"
+
+#include "atomic.h"
+
+/*
+ * @brief barrier max count
+ *
+ * Barriers are implemented on FreeRTOS event groups, of which 8 bits are usable
+ * when configUSE_16_BIT_TICKS is 1. Otherwise, 24 bits are usable.
+ */
+/**@{ */
+#if ( configUSE_16_BIT_TICKS == 1 )
+ #define posixPTHREAD_BARRIER_MAX_COUNT ( 8 )
+#else
+ #define posixPTHREAD_BARRIER_MAX_COUNT ( 24 )
+#endif
+/**@} */
+
+/*-----------------------------------------------------------*/
+
+int pthread_barrier_destroy( pthread_barrier_t * barrier )
+{
+ pthread_barrier_internal_t * pxBarrier = ( pthread_barrier_internal_t * ) ( barrier );
+
+ /* Free all resources used by the barrier. */
+ ( void ) vEventGroupDelete( ( EventGroupHandle_t ) &pxBarrier->xBarrierEventGroup );
+ ( void ) vSemaphoreDelete( ( SemaphoreHandle_t ) &pxBarrier->xThreadCountSemaphore );
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_barrier_init( pthread_barrier_t * barrier,
+ const pthread_barrierattr_t * attr,
+ unsigned count )
+{
+ int iStatus = 0;
+ pthread_barrier_internal_t * pxNewBarrier = ( pthread_barrier_internal_t * ) ( barrier );
+
+ /* Silence warnings about unused parameters. */
+ ( void ) attr;
+
+ /* Ensure count is greater than 0. */
+ if( count == 0 )
+ {
+ iStatus = EINVAL;
+ }
+
+ /* Ensure that count will fit in a FreeRTOS event group. */
+ if( iStatus == 0 )
+ {
+ if( count > posixPTHREAD_BARRIER_MAX_COUNT )
+ {
+ /* No memory exists in the event group for more than
+ * posixPTHREAD_BARRIER_MAX_COUNT threads. */
+ iStatus = ENOMEM;
+ }
+ }
+
+ if( iStatus == 0 )
+ {
+ /* Set the current thread count and threshold. */
+ pxNewBarrier->uThreadCount = 0;
+ pxNewBarrier->uThreshold = count;
+
+ /* Create the FreeRTOS event group. This call will not fail when its
+ * argument isn't NULL. */
+ ( void ) xEventGroupCreateStatic( &pxNewBarrier->xBarrierEventGroup );
+
+ /* Create the semaphore that prevents more than count threads from being
+ * unblocked by a single successful pthread_barrier_wait. This semaphore
+ * counts down from count and cannot decrement below 0. */
+ ( void ) xSemaphoreCreateCountingStatic( ( UBaseType_t ) count, /* Max count. */
+ ( UBaseType_t ) count, /* Initial count. */
+ &pxNewBarrier->xThreadCountSemaphore );
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_barrier_wait( pthread_barrier_t * barrier )
+{
+ int iStatus = 0;
+ unsigned i = 0; /* Loop iterator. */
+ pthread_barrier_internal_t * pxBarrier = ( pthread_barrier_internal_t * ) ( barrier );
+ unsigned uThreadNumber = 0;
+
+ /* Decrement the number of threads waiting on this barrier. This will prevent more
+ * than pxBarrier->uThreshold threads from being unblocked by a single successful
+ * pthread_barrier_wait call.
+ *
+ * This call will never fail because it blocks forever.
+ */
+ ( void ) xSemaphoreTake( ( SemaphoreHandle_t ) &pxBarrier->xThreadCountSemaphore, portMAX_DELAY );
+
+ uThreadNumber = Atomic_Increment_u32( ( uint32_t * ) &pxBarrier->uThreadCount );
+
+ /* Set the bit in the event group representing this thread, then wait for the other
+ * threads to set their bit. This call should wait forever until all threads have set
+ * their bit, so the return value is ignored. */
+ ( void ) xEventGroupSync( ( EventGroupHandle_t ) &pxBarrier->xBarrierEventGroup,
+ 1 << uThreadNumber, /* Which bit in the event group to set. */
+ ( 1 << pxBarrier->uThreshold ) - 1, /* Wait for all threads to set their bits. */
+ portMAX_DELAY );
+
+ /* The first thread to enter the barrier gets PTHREAD_BARRIER_SERIAL_THREAD as its
+ * return value and resets xThreadCountSemaphore. */
+
+ if( uThreadNumber == 0 )
+ {
+ iStatus = PTHREAD_BARRIER_SERIAL_THREAD;
+
+ /* uThreadCount can be safely changed without locking xThreadCountMutex
+ * because xThreadCountSemaphore is currently 0. */
+ pxBarrier->uThreadCount = 0;
+
+ /* Reset xThreadCountSemaphore. This allows more threads to enter the
+ * barrier, starting a new cycle. */
+ for( i = 0; i < pxBarrier->uThreshold; i++ )
+ {
+ xSemaphoreGive( ( SemaphoreHandle_t ) &pxBarrier->xThreadCountSemaphore );
+ }
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread_cond.c b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread_cond.c
new file mode 100644
index 0000000000000000000000000000000000000000..b9726344af0e92497199a2fe34bf13a0ce945f5d
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread_cond.c
@@ -0,0 +1,296 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_pthread_cond.c
+ * @brief Implementation of condition variable functions in pthread.h
+ */
+
+/* C standard library includes. */
+#include
+
+/* FreeRTOS+POSIX includes. */
+#include "FreeRTOS_POSIX.h"
+#include "FreeRTOS_POSIX/errno.h"
+#include "FreeRTOS_POSIX/pthread.h"
+#include "FreeRTOS_POSIX/utils.h"
+
+#include "atomic.h"
+
+/**
+ * @brief Initialize a PTHREAD_COND_INITIALIZER cond.
+ *
+ * PTHREAD_COND_INITIALIZER sets a flag for a cond to be initialized later.
+ * This function performs the initialization.
+ * @param[in] pxCond The cond to initialize.
+ *
+ * @return nothing
+ */
+static void prvInitializeStaticCond( pthread_cond_internal_t * pxCond );
+
+/*-----------------------------------------------------------*/
+
+static void prvInitializeStaticCond( pthread_cond_internal_t * pxCond )
+{
+ /* Check if the condition variable needs to be initialized. */
+ if( pxCond->xIsInitialized == pdFALSE )
+ {
+ /* Cond initialization must be in a critical section to prevent two threads
+ * from initializing it at the same time. */
+ taskENTER_CRITICAL();
+
+ /* Check again that the cond is still uninitialized, i.e. it wasn't
+ * initialized while this function was waiting to enter the critical
+ * section. */
+ if( pxCond->xIsInitialized == pdFALSE )
+ {
+ /* Set the members of the cond. The semaphore create calls will never fail
+ * when their arguments aren't NULL. */
+ pxCond->xIsInitialized = pdTRUE;
+ ( void ) xSemaphoreCreateCountingStatic( INT_MAX, 0U, &pxCond->xCondWaitSemaphore );
+ pxCond->iWaitingThreads = 0;
+ }
+
+ /* Exit the critical section. */
+ taskEXIT_CRITICAL();
+ }
+}
+
+/**
+ * @brief Check "atomically" if iLocalWaitingThreads == pxCond->iWaitingThreads and decrement.
+ */
+static void prvTestAndDecrement( pthread_cond_t * pxCond,
+ unsigned iLocalWaitingThreads )
+{
+ /* Test local copy of threads waiting is larger than zero. */
+ while( iLocalWaitingThreads > 0 )
+ {
+ /* Test-and-set. Atomically check whether the copy in memory has changed.
+ * And, if not decrease the copy of threads waiting in memory. */
+ if( ATOMIC_COMPARE_AND_SWAP_SUCCESS == Atomic_CompareAndSwap_u32( ( uint32_t * ) &pxCond->iWaitingThreads, ( uint32_t ) iLocalWaitingThreads - 1, ( uint32_t ) iLocalWaitingThreads ) )
+ {
+ /* Signal one succeeded. Break. */
+ break;
+ }
+
+ /* Local copy may be out dated. Reload, and retry. */
+ iLocalWaitingThreads = pxCond->iWaitingThreads;
+ }
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_cond_broadcast( pthread_cond_t * cond )
+{
+ unsigned i = 0;
+ pthread_cond_internal_t * pxCond = ( pthread_cond_internal_t * ) ( cond );
+
+ /* If the cond is uninitialized, perform initialization. */
+ prvInitializeStaticCond( pxCond );
+
+ /* Local copy of number of threads waiting. */
+ unsigned iLocalWaitingThreads = pxCond->iWaitingThreads;
+
+ /* Test local copy of threads waiting is larger than zero. */
+ while( iLocalWaitingThreads > 0 )
+ {
+ /* Test-and-set. Atomically check whether the copy in memory has changed.
+ * And, if not set the copy of threads waiting in memory to zero. */
+ if( ATOMIC_COMPARE_AND_SWAP_SUCCESS == Atomic_CompareAndSwap_u32( ( uint32_t * ) &pxCond->iWaitingThreads, 0, ( uint32_t ) iLocalWaitingThreads ) )
+ {
+ /* Unblock all. */
+ for( i = 0; i < iLocalWaitingThreads; i++ )
+ {
+ ( void ) xSemaphoreGive( ( SemaphoreHandle_t ) &pxCond->xCondWaitSemaphore );
+ }
+
+ break;
+ }
+
+ /* Local copy is out dated. Reload, and retry. */
+ iLocalWaitingThreads = pxCond->iWaitingThreads;
+ }
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_cond_destroy( pthread_cond_t * cond )
+{
+ pthread_cond_internal_t * pxCond = ( pthread_cond_internal_t * ) ( cond );
+
+ /* Free all resources in use by the cond. */
+ vSemaphoreDelete( ( SemaphoreHandle_t ) &pxCond->xCondWaitSemaphore );
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_cond_init( pthread_cond_t * cond,
+ const pthread_condattr_t * attr )
+{
+ int iStatus = 0;
+ pthread_cond_internal_t * pxCond = ( pthread_cond_internal_t * ) cond;
+
+ /* Silence warnings about unused parameters. */
+ ( void ) attr;
+
+ if( pxCond == NULL )
+ {
+ iStatus = ENOMEM;
+ }
+
+ if( iStatus == 0 )
+ {
+ /* Set the members of the cond. The semaphore create calls will never fail
+ * when their arguments aren't NULL. */
+ pxCond->xIsInitialized = pdTRUE;
+
+ ( void ) xSemaphoreCreateCountingStatic( INT_MAX, 0U, &pxCond->xCondWaitSemaphore );
+ pxCond->iWaitingThreads = 0;
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_cond_signal( pthread_cond_t * cond )
+{
+ pthread_cond_internal_t * pxCond = ( pthread_cond_internal_t * ) ( cond );
+
+ /* If the cond is uninitialized, perform initialization. */
+ prvInitializeStaticCond( pxCond );
+
+ /* Local copy of number of threads waiting. */
+ unsigned iLocalWaitingThreads = pxCond->iWaitingThreads;
+
+ /* Test local copy of threads waiting is larger than zero. */
+ while( iLocalWaitingThreads > 0 )
+ {
+ /* Test-and-set. Atomically check whether the copy in memory has changed.
+ * And, if not decrease the copy of threads waiting in memory. */
+ if( ATOMIC_COMPARE_AND_SWAP_SUCCESS == Atomic_CompareAndSwap_u32( ( uint32_t * ) &pxCond->iWaitingThreads, ( uint32_t ) iLocalWaitingThreads - 1, ( uint32_t ) iLocalWaitingThreads ) )
+ {
+ /* Unblock one. */
+ ( void ) xSemaphoreGive( ( SemaphoreHandle_t ) &pxCond->xCondWaitSemaphore );
+
+ /* Signal one succeeded. Break. */
+ break;
+ }
+
+ /* Local copy may be out dated. Reload, and retry. */
+ iLocalWaitingThreads = pxCond->iWaitingThreads;
+ }
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_cond_timedwait( pthread_cond_t * cond,
+ pthread_mutex_t * mutex,
+ const struct timespec * abstime )
+{
+ unsigned iLocalWaitingThreads;
+ int iStatus = 0;
+ pthread_cond_internal_t * pxCond = ( pthread_cond_internal_t * ) ( cond );
+ TickType_t xDelay = portMAX_DELAY;
+
+ /* If the cond is uninitialized, perform initialization. */
+ prvInitializeStaticCond( pxCond );
+
+ /* Convert abstime to a delay in TickType_t if provided. */
+ if( abstime != NULL )
+ {
+ struct timespec xCurrentTime = { 0 };
+
+ /* Get current time */
+ if( clock_gettime( CLOCK_REALTIME, &xCurrentTime ) != 0 )
+ {
+ iStatus = EINVAL;
+ }
+ else
+ {
+ iStatus = UTILS_AbsoluteTimespecToDeltaTicks( abstime, &xCurrentTime, &xDelay );
+ }
+ }
+
+ /* Increase the counter of threads blocking on condition variable, then
+ * unlock mutex. */
+ if( iStatus == 0 )
+ {
+ /* Atomically increments thread waiting by 1, and
+ * stores number of threads waiting before increment. */
+ iLocalWaitingThreads = Atomic_Increment_u32( ( uint32_t * ) &pxCond->iWaitingThreads );
+
+ iStatus = pthread_mutex_unlock( mutex );
+ }
+
+ /* Wait on the condition variable. */
+ if( iStatus == 0 )
+ {
+ if( xSemaphoreTake( ( SemaphoreHandle_t ) &pxCond->xCondWaitSemaphore,
+ xDelay ) == pdPASS )
+ {
+ /* When successful, relock mutex. */
+ iStatus = pthread_mutex_lock( mutex );
+ }
+ else
+ {
+ /* Timeout. Relock mutex and decrement number of waiting threads. */
+ iStatus = ETIMEDOUT;
+ ( void ) pthread_mutex_lock( mutex );
+
+ /* Atomically decrements thread waiting by 1.
+ * If iLocalWaitingThreads is updated by other thread(s) in between,
+ * this implementation guarantees to decrement by 1 based on the
+ * value currently in pxCond->iWaitingThreads. */
+ prvTestAndDecrement( pxCond, iLocalWaitingThreads + 1 );
+ }
+ }
+ else
+ {
+ /* Atomically decrements thread waiting by 1.
+ * If iLocalWaitingThreads is updated by other thread(s) in between,
+ * this implementation guarantees to decrement by 1 based on the
+ * value currently in pxCond->iWaitingThreads. */
+ prvTestAndDecrement( pxCond, iLocalWaitingThreads + 1 );
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_cond_wait( pthread_cond_t * cond,
+ pthread_mutex_t * mutex )
+{
+ return pthread_cond_timedwait( cond, mutex, NULL );
+}
+
+/*-----------------------------------------------------------*/
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread_mutex.c b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread_mutex.c
new file mode 100644
index 0000000000000000000000000000000000000000..0ea3aeb6517105919f6b4700fd1b9ff38b5ef696
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread_mutex.c
@@ -0,0 +1,373 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_pthread_mutex.c
+ * @brief Implementation of mutex functions in pthread.h
+ */
+
+/* C standard library includes. */
+#include
+#include
+
+/* FreeRTOS+POSIX includes. */
+#include "FreeRTOS_POSIX.h"
+#include "FreeRTOS_POSIX/errno.h"
+#include "FreeRTOS_POSIX/pthread.h"
+#include "FreeRTOS_POSIX/utils.h"
+
+/**
+ * @brief Initialize a PTHREAD_MUTEX_INITIALIZER mutex.
+ *
+ * PTHREAD_MUTEX_INITIALIZER sets a flag for a mutex to be initialized later.
+ * This function performs the initialization.
+ * @param[in] pxMutex The mutex to initialize.
+ *
+ * @return nothing
+ */
+static void prvInitializeStaticMutex( pthread_mutex_internal_t * pxMutex );
+
+/**
+ * @brief Default pthread_mutexattr_t.
+ */
+static const pthread_mutexattr_internal_t xDefaultMutexAttributes =
+{
+ .iType = PTHREAD_MUTEX_DEFAULT,
+};
+
+/*-----------------------------------------------------------*/
+
+static void prvInitializeStaticMutex( pthread_mutex_internal_t * pxMutex )
+{
+ /* Check if the mutex needs to be initialized. */
+ if( pxMutex->xIsInitialized == pdFALSE )
+ {
+ /* Mutex initialization must be in a critical section to prevent two threads
+ * from initializing it at the same time. */
+ taskENTER_CRITICAL();
+
+ /* Check again that the mutex is still uninitialized, i.e. it wasn't
+ * initialized while this function was waiting to enter the critical
+ * section. */
+ if( pxMutex->xIsInitialized == pdFALSE )
+ {
+ /* Set the mutex as the default type. */
+ pxMutex->xAttr.iType = PTHREAD_MUTEX_DEFAULT;
+
+ /* Call the correct FreeRTOS mutex initialization function based on
+ * the mutex type. */
+ #if PTHREAD_MUTEX_DEFAULT == PTHREAD_MUTEX_RECURSIVE
+ ( void ) xSemaphoreCreateRecursiveMutexStatic( &pxMutex->xMutex );
+ #else
+ ( void ) xSemaphoreCreateMutexStatic( &pxMutex->xMutex );
+ #endif
+
+ pxMutex->xIsInitialized = pdTRUE;
+ }
+
+ /* Exit the critical section. */
+ taskEXIT_CRITICAL();
+ }
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_mutex_destroy( pthread_mutex_t * mutex )
+{
+ pthread_mutex_internal_t * pxMutex = ( pthread_mutex_internal_t * ) ( mutex );
+
+ /* Free resources in use by the mutex. */
+ if( pxMutex->xTaskOwner == NULL )
+ {
+ vSemaphoreDelete( ( SemaphoreHandle_t ) &pxMutex->xMutex );
+ }
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_mutex_init( pthread_mutex_t * mutex,
+ const pthread_mutexattr_t * attr )
+{
+ int iStatus = 0;
+ pthread_mutex_internal_t * pxMutex = ( pthread_mutex_internal_t * ) mutex;
+
+ if( pxMutex == NULL )
+ {
+ /* No memory. */
+ iStatus = ENOMEM;
+ }
+
+ if( iStatus == 0 )
+ {
+ *pxMutex = FREERTOS_POSIX_MUTEX_INITIALIZER;
+
+ /* No attributes given, use default attributes. */
+ if( attr == NULL )
+ {
+ pxMutex->xAttr = xDefaultMutexAttributes;
+ }
+ /* Otherwise, use provided attributes. */
+ else
+ {
+ pxMutex->xAttr = *( ( pthread_mutexattr_internal_t * ) ( attr ) );
+ }
+
+ /* Call the correct FreeRTOS mutex creation function based on mutex type. */
+ if( pxMutex->xAttr.iType == PTHREAD_MUTEX_RECURSIVE )
+ {
+ /* Recursive mutex. */
+ ( void ) xSemaphoreCreateRecursiveMutexStatic( &pxMutex->xMutex );
+ }
+ else
+ {
+ /* All other mutex types. */
+ ( void ) xSemaphoreCreateMutexStatic( &pxMutex->xMutex );
+ }
+
+ /* Ensure that the FreeRTOS mutex was successfully created. */
+ if( ( SemaphoreHandle_t ) &pxMutex->xMutex == NULL )
+ {
+ /* Failed to create mutex. Set error EAGAIN and free mutex object. */
+ iStatus = EAGAIN;
+ vPortFree( pxMutex );
+ }
+ else
+ {
+ /* Mutex successfully created. */
+ pxMutex->xIsInitialized = pdTRUE;
+ }
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_mutex_lock( pthread_mutex_t * mutex )
+{
+ return pthread_mutex_timedlock( mutex, NULL );
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_mutex_timedlock( pthread_mutex_t * mutex,
+ const struct timespec * abstime )
+{
+ int iStatus = 0;
+ pthread_mutex_internal_t * pxMutex = ( pthread_mutex_internal_t * ) ( mutex );
+ TickType_t xDelay = portMAX_DELAY;
+ BaseType_t xFreeRTOSMutexTakeStatus = pdFALSE;
+
+ /* If mutex in uninitialized, perform initialization. */
+ prvInitializeStaticMutex( pxMutex );
+
+ /* At this point, the mutex should be initialized. */
+ configASSERT( pxMutex->xIsInitialized == pdTRUE );
+
+ /* Convert abstime to a delay in TickType_t if provided. */
+ if( abstime != NULL )
+ {
+ struct timespec xCurrentTime = { 0 };
+
+ /* Get current time */
+ if( clock_gettime( CLOCK_REALTIME, &xCurrentTime ) != 0 )
+ {
+ iStatus = EINVAL;
+ }
+ else
+ {
+ iStatus = UTILS_AbsoluteTimespecToDeltaTicks( abstime, &xCurrentTime, &xDelay );
+ }
+
+ /* If abstime was in the past, still attempt to lock the mutex without
+ * blocking, per POSIX spec. */
+ if( iStatus == ETIMEDOUT )
+ {
+ xDelay = 0;
+ iStatus = 0;
+ }
+ }
+
+ /* Check if trying to lock a currently owned mutex. */
+ if( ( iStatus == 0 ) &&
+ ( pxMutex->xAttr.iType == PTHREAD_MUTEX_ERRORCHECK ) && /* Only PTHREAD_MUTEX_ERRORCHECK type detects deadlock. */
+ ( pxMutex->xTaskOwner == xTaskGetCurrentTaskHandle() ) ) /* Check if locking a currently owned mutex. */
+ {
+ iStatus = EDEADLK;
+ }
+
+ if( iStatus == 0 )
+ {
+ /* Call the correct FreeRTOS mutex take function based on mutex type. */
+ if( pxMutex->xAttr.iType == PTHREAD_MUTEX_RECURSIVE )
+ {
+ xFreeRTOSMutexTakeStatus = xSemaphoreTakeRecursive( ( SemaphoreHandle_t ) &pxMutex->xMutex, xDelay );
+ }
+ else
+ {
+ xFreeRTOSMutexTakeStatus = xSemaphoreTake( ( SemaphoreHandle_t ) &pxMutex->xMutex, xDelay );
+ }
+
+ /* If the mutex was successfully taken, set its owner. */
+ if( xFreeRTOSMutexTakeStatus == pdPASS )
+ {
+ pxMutex->xTaskOwner = xTaskGetCurrentTaskHandle();
+ }
+ /* Otherwise, the mutex take timed out. */
+ else
+ {
+ iStatus = ETIMEDOUT;
+ }
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_mutex_trylock( pthread_mutex_t * mutex )
+{
+ int iStatus = 0;
+ struct timespec xTimeout =
+ {
+ .tv_sec = 0,
+ .tv_nsec = 0
+ };
+
+ /* Attempt to lock with no timeout. */
+ iStatus = pthread_mutex_timedlock( mutex, &xTimeout );
+
+ /* POSIX specifies that this function should return EBUSY instead of
+ * ETIMEDOUT for attempting to lock a locked mutex. */
+ if( iStatus == ETIMEDOUT )
+ {
+ iStatus = EBUSY;
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_mutex_unlock( pthread_mutex_t * mutex )
+{
+ int iStatus = 0;
+ pthread_mutex_internal_t * pxMutex = ( pthread_mutex_internal_t * ) ( mutex );
+
+ /* If mutex in uninitialized, perform initialization. */
+ prvInitializeStaticMutex( pxMutex );
+
+ /* Check if trying to unlock an unowned mutex. */
+ if( ( ( pxMutex->xAttr.iType == PTHREAD_MUTEX_ERRORCHECK ) ||
+ ( pxMutex->xAttr.iType == PTHREAD_MUTEX_RECURSIVE ) ) &&
+ ( pxMutex->xTaskOwner != xTaskGetCurrentTaskHandle() ) )
+ {
+ iStatus = EPERM;
+ }
+
+ if( iStatus == 0 )
+ {
+ /* Suspend the scheduler so that
+ * mutex is unlocked AND owner is updated atomically */
+ vTaskSuspendAll();
+
+ /* Call the correct FreeRTOS mutex unlock function based on mutex type. */
+ if( pxMutex->xAttr.iType == PTHREAD_MUTEX_RECURSIVE )
+ {
+ ( void ) xSemaphoreGiveRecursive( ( SemaphoreHandle_t ) &pxMutex->xMutex );
+ }
+ else
+ {
+ ( void ) xSemaphoreGive( ( SemaphoreHandle_t ) &pxMutex->xMutex );
+ }
+
+ /* Update the owner of the mutex. A recursive mutex may still have an
+ * owner, so it should be updated with xSemaphoreGetMutexHolder. */
+ pxMutex->xTaskOwner = xSemaphoreGetMutexHolder( ( SemaphoreHandle_t ) &pxMutex->xMutex );
+
+ /* Resume the scheduler */
+ ( void ) xTaskResumeAll();
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_mutexattr_destroy( pthread_mutexattr_t * attr )
+{
+ ( void ) attr;
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_mutexattr_gettype( const pthread_mutexattr_t * attr,
+ int * type )
+{
+ pthread_mutexattr_internal_t * pxAttr = ( pthread_mutexattr_internal_t * ) ( attr );
+
+ *type = pxAttr->iType;
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_mutexattr_init( pthread_mutexattr_t * attr )
+{
+ *( ( pthread_mutexattr_internal_t * ) ( attr ) ) = xDefaultMutexAttributes;
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int pthread_mutexattr_settype( pthread_mutexattr_t * attr,
+ int type )
+{
+ int iStatus = 0;
+ pthread_mutexattr_internal_t * pxAttr = ( pthread_mutexattr_internal_t * ) ( attr );
+
+ switch( type )
+ {
+ case PTHREAD_MUTEX_NORMAL:
+ case PTHREAD_MUTEX_RECURSIVE:
+ case PTHREAD_MUTEX_ERRORCHECK:
+ pxAttr->iType = type;
+ break;
+
+ default:
+ iStatus = EINVAL;
+ break;
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_sched.c b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_sched.c
new file mode 100644
index 0000000000000000000000000000000000000000..7916a99e7074243251d8fb076d4d3b513ffdb9a0
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_sched.c
@@ -0,0 +1,64 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_sched.c
+ * @brief Implementation of scheduler functions in sched.h
+ */
+
+/* FreeRTOS+POSIX includes. */
+#include "FreeRTOS_POSIX.h"
+#include "FreeRTOS_POSIX/sched.h"
+
+/*-----------------------------------------------------------*/
+
+int sched_get_priority_max( int policy )
+{
+ /* Silence warnings about unused parameters. */
+ ( void ) policy;
+
+ return configMAX_PRIORITIES - 1;
+}
+
+/*-----------------------------------------------------------*/
+
+int sched_get_priority_min( int policy )
+{
+ /* Silence warnings about unused parameters. */
+ ( void ) policy;
+
+ return tskIDLE_PRIORITY;
+}
+
+/*-----------------------------------------------------------*/
+
+int sched_yield( void )
+{
+ taskYIELD();
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_semaphore.c b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_semaphore.c
new file mode 100644
index 0000000000000000000000000000000000000000..6a83150f6a3741d21884aeddf43c42787b651ece
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_semaphore.c
@@ -0,0 +1,232 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_semaphore.c
+ * @brief Implementation of functions in semaphore.h
+ */
+
+/* C standard library includes. */
+#include
+
+/* FreeRTOS+POSIX includes. */
+#include "FreeRTOS_POSIX.h"
+#include "FreeRTOS_POSIX/errno.h"
+#include "FreeRTOS_POSIX/semaphore.h"
+#include "FreeRTOS_POSIX/utils.h"
+
+#include "atomic.h"
+
+
+/*-----------------------------------------------------------*/
+
+int sem_destroy( sem_t * sem )
+{
+ sem_internal_t * pxSem = ( sem_internal_t * ) ( sem );
+
+ /* Free the resources in use by the semaphore. */
+ vSemaphoreDelete( ( SemaphoreHandle_t ) &pxSem->xSemaphore );
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int sem_getvalue( sem_t * sem,
+ int * sval )
+{
+ sem_internal_t * pxSem = ( sem_internal_t * ) ( sem );
+
+ /* Get value does not need atomic operation, since -- Open Group
+ * states "the updated value represents an actual semaphore value that
+ * occurred at some unspecified time during the call, but it need not be the
+ * actual value of the semaphore when it is returned to the calling process."
+ */
+ *sval = pxSem->value;
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int sem_init( sem_t * sem,
+ int pshared,
+ unsigned value )
+{
+ int iStatus = 0;
+ sem_internal_t * pxSem = ( sem_internal_t * ) ( sem );
+
+ /* Silence warnings about unused parameters. */
+ ( void ) pshared;
+
+ /* Check value parameter. */
+ if( value > SEM_VALUE_MAX )
+ {
+ errno = EINVAL;
+ iStatus = -1;
+ }
+
+ /* value is guaranteed to not exceed INT32_MAX, which is the default value of SEM_VALUE_MAX (0x7FFFU). */
+ pxSem->value = ( int ) value;
+
+ /* Create the FreeRTOS semaphore.
+ * This is only used to queue threads when no semaphore is available.
+ * Initializing with semaphore initial count zero.
+ * This call will not fail because the memory for the semaphore has already been allocated.
+ */
+ if( iStatus == 0 )
+ {
+ ( void ) xSemaphoreCreateCountingStatic( SEM_VALUE_MAX, 0, &pxSem->xSemaphore );
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int sem_post( sem_t * sem )
+{
+ sem_internal_t * pxSem = ( sem_internal_t * ) ( sem );
+
+ int iPreviouValue = Atomic_Increment_u32( ( uint32_t * ) &pxSem->value );
+
+ /* If previous semaphore value is equal or larger than zero, there is no
+ * thread waiting for this semaphore. Otherwise (<0), call FreeRTOS interface
+ * to wake up a thread. */
+ if( iPreviouValue < 0 )
+ {
+ /* Give the semaphore using the FreeRTOS API. */
+ ( void ) xSemaphoreGive( ( SemaphoreHandle_t ) &pxSem->xSemaphore );
+ }
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int sem_timedwait( sem_t * sem,
+ const struct timespec * abstime )
+{
+ int iStatus = 0;
+ sem_internal_t * pxSem = ( sem_internal_t * ) ( sem );
+ TickType_t xDelay = portMAX_DELAY;
+ int iPreviousValue = Atomic_Decrement_u32( ( uint32_t * ) &pxSem->value );
+
+ if( abstime != NULL )
+ {
+ /* If the provided timespec is invalid, still attempt to take the
+ * semaphore without blocking, per POSIX spec. */
+ if( UTILS_ValidateTimespec( abstime ) == false )
+ {
+ xDelay = 0;
+ iStatus = EINVAL;
+ }
+ else
+ {
+ struct timespec xCurrentTime = { 0 };
+
+ /* Get current time */
+ if( clock_gettime( CLOCK_REALTIME, &xCurrentTime ) != 0 )
+ {
+ iStatus = EINVAL;
+ }
+ else
+ {
+ iStatus = UTILS_AbsoluteTimespecToDeltaTicks( abstime, &xCurrentTime, &xDelay );
+ }
+
+ /* If abstime was in the past, still attempt to take the semaphore without
+ * blocking, per POSIX spec. */
+ if( iStatus == ETIMEDOUT )
+ {
+ xDelay = 0;
+ }
+ }
+ }
+
+ /* If previous semaphore value is larger than zero, the thread entering this function call
+ * can take the semaphore without yielding. Else (<=0), calling into FreeRTOS API to yield.
+ */
+ if( iPreviousValue > 0 )
+ {
+ /* Under no circumstance shall the function fail with a timeout if the semaphore can be locked immediately. */
+ iStatus = 0;
+ }
+ else
+ {
+ /* Take the semaphore using the FreeRTOS API. */
+ if( xSemaphoreTake( ( SemaphoreHandle_t ) &pxSem->xSemaphore,
+ xDelay ) != pdTRUE )
+ {
+ if( iStatus == 0 )
+ {
+ errno = ETIMEDOUT;
+ }
+ else
+ {
+ errno = iStatus;
+ }
+
+ iStatus = -1;
+ }
+ else
+ {
+ iStatus = 0;
+ }
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int sem_trywait( sem_t * sem )
+{
+ int iStatus = 0;
+
+ /* Setting an absolute timeout of 0 (i.e. in the past) will cause sem_timedwait
+ * to not block. */
+ struct timespec xTimeout = { 0 };
+
+ iStatus = sem_timedwait( sem, &xTimeout );
+
+ /* POSIX specifies that this function should set errno to EAGAIN and not
+ * ETIMEDOUT. */
+ if( ( iStatus == -1 ) && ( errno == ETIMEDOUT ) )
+ {
+ errno = EAGAIN;
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int sem_wait( sem_t * sem )
+{
+ return sem_timedwait( sem, NULL );
+}
+
+/*-----------------------------------------------------------*/
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_timer.c b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_timer.c
new file mode 100644
index 0000000000000000000000000000000000000000..33485aecb6d10c9d227f3d08f5216b5917332757
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_timer.c
@@ -0,0 +1,337 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_timer.c
+ * @brief Implementation of timer functions in time.h
+ */
+
+/* C standard library includes. */
+#include
+
+/* FreeRTOS+POSIX includes. */
+#include "FreeRTOS_POSIX.h"
+#include "FreeRTOS_POSIX/errno.h"
+#include "FreeRTOS_POSIX/pthread.h"
+#include "FreeRTOS_POSIX/signal.h"
+#include "FreeRTOS_POSIX/time.h"
+#include "FreeRTOS_POSIX/utils.h"
+
+/* FreeRTOS timer include. */
+#include "timers.h"
+
+/* Timespec zero check macros. */
+#define TIMESPEC_IS_ZERO( xTimespec ) ( xTimespec.tv_sec == 0 && xTimespec.tv_nsec == 0 ) /**< Check for 0. */
+#define TIMESPEC_IS_NOT_ZERO( xTimespec ) ( !( TIMESPEC_IS_ZERO( xTimespec ) ) ) /**< Check for not 0. */
+
+/**
+ * @brief Internal timer structure.
+ */
+typedef struct timer_internal
+{
+ StaticTimer_t xTimerBuffer; /**< Memory that holds the FreeRTOS timer. */
+ struct sigevent xTimerEvent; /**< What to do when this timer expires. */
+ TickType_t xTimerPeriod; /**< Period of this timer. */
+} timer_internal_t;
+
+/*-----------------------------------------------------------*/
+
+void prvTimerCallback( TimerHandle_t xTimerHandle )
+{
+ timer_internal_t * pxTimer = ( timer_internal_t * ) pvTimerGetTimerID( xTimerHandle );
+ pthread_t xTimerNotificationThread;
+
+ /* The value of the timer ID, set in timer_create, should not be NULL. */
+ configASSERT( pxTimer != NULL );
+
+ /* A value of SIGEV_SIGNAL isn't supported and should not have been successfully
+ * set. */
+ configASSERT( pxTimer->xTimerEvent.sigev_notify != SIGEV_SIGNAL );
+
+ /* Update the timer period, which may need to be set to an it_interval
+ * argument. This call should not block. */
+ if( pxTimer->xTimerPeriod > 0 )
+ {
+ xTimerChangePeriod( xTimerHandle, pxTimer->xTimerPeriod, 0 );
+ }
+
+ /* Create the timer notification thread if requested. */
+ if( pxTimer->xTimerEvent.sigev_notify == SIGEV_THREAD )
+ {
+ /* if the user has provided thread attributes, create a thread
+ * with the provided attributes. Otherwise dispatch callback directly */
+ if( pxTimer->xTimerEvent.sigev_notify_attributes == NULL )
+ {
+ ( *pxTimer->xTimerEvent.sigev_notify_function )( pxTimer->xTimerEvent.sigev_value );
+ }
+ else
+ {
+ ( void ) pthread_create( &xTimerNotificationThread,
+ pxTimer->xTimerEvent.sigev_notify_attributes,
+ ( void * ( * )( void * ) )pxTimer->xTimerEvent.sigev_notify_function,
+ pxTimer->xTimerEvent.sigev_value.sival_ptr );
+ }
+ }
+}
+
+/*-----------------------------------------------------------*/
+
+int timer_create( clockid_t clockid,
+ struct sigevent * evp,
+ timer_t * timerid )
+{
+ int iStatus = 0;
+ timer_internal_t * pxTimer = NULL;
+
+ /* Silence warnings about unused parameters. */
+ ( void ) clockid;
+
+ /* POSIX specifies that when evp is NULL, the behavior shall be as is
+ * sigev_notify is SIGEV_SIGNAL. SIGEV_SIGNAL is currently not supported. */
+ if( ( evp == NULL ) || ( evp->sigev_notify == SIGEV_SIGNAL ) )
+ {
+ errno = ENOTSUP;
+ iStatus = -1;
+ }
+
+ /* Allocate memory for a new timer object. */
+ if( iStatus == 0 )
+ {
+ pxTimer = pvPortMalloc( sizeof( timer_internal_t ) );
+
+ if( pxTimer == NULL )
+ {
+ errno = EAGAIN;
+ iStatus = -1;
+ }
+ }
+
+ if( iStatus == 0 )
+ {
+ /* Copy the event notification structure and set the current timer period. */
+ pxTimer->xTimerEvent = *evp;
+ pxTimer->xTimerPeriod = 0;
+
+ /* Create a new FreeRTOS timer. This call will not fail because the
+ * memory for it has already been allocated, so the output parameter is
+ * also set. */
+ *timerid = ( timer_t ) xTimerCreateStatic( posixconfigTIMER_NAME, /* Timer name. */
+ portMAX_DELAY, /* Initial timer period. Timers are created disarmed. */
+ pdFALSE, /* Don't auto-reload timer. */
+ ( void * ) pxTimer, /* Timer id. */
+ prvTimerCallback, /* Timer expiration callback. */
+ &pxTimer->xTimerBuffer ); /* Pre-allocated memory for timer. */
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int timer_delete( timer_t timerid )
+{
+ TimerHandle_t xTimerHandle = timerid;
+ timer_internal_t * pxTimer = ( timer_internal_t * ) pvTimerGetTimerID( xTimerHandle );
+
+ /* The value of the timer ID, set in timer_create, should not be NULL. */
+ configASSERT( pxTimer != NULL );
+
+ /* Stop the FreeRTOS timer. Because the timer is statically allocated, no call
+ * to xTimerDelete is necessary. The timer is stopped so that it's not referenced
+ * anywhere. xTimerStop will not fail when it has unlimited block time. */
+ ( void ) xTimerStop( xTimerHandle, portMAX_DELAY );
+
+ /* Wait until the timer stop command is processed. */
+ while( xTimerIsTimerActive( xTimerHandle ) == pdTRUE )
+ {
+ vTaskDelay( 1 );
+ }
+
+ /* Free the memory in use by the timer. */
+ vPortFree( pxTimer );
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int timer_getoverrun( timer_t timerid )
+{
+ /* Silence warnings about unused parameters. */
+ ( void ) timerid;
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int timer_settime( timer_t timerid,
+ int flags,
+ const struct itimerspec * value,
+ struct itimerspec * ovalue )
+{
+ int iStatus = 0;
+ TimerHandle_t xTimerHandle = timerid;
+ timer_internal_t * pxTimer = ( timer_internal_t * ) pvTimerGetTimerID( xTimerHandle );
+ TickType_t xNextTimerExpiration = 0, xTimerExpirationPeriod = 0;
+ BaseType_t xTimerCommandSent = pdFAIL;
+
+ /* Validate the value argument, but only if the timer isn't being disarmed. */
+ if( TIMESPEC_IS_NOT_ZERO( value->it_value ) )
+ {
+ if( ( UTILS_ValidateTimespec( &value->it_interval ) == false ) ||
+ ( UTILS_ValidateTimespec( &value->it_value ) == false ) )
+ {
+ errno = EINVAL;
+ iStatus = -1;
+ }
+ }
+
+ /* Set ovalue, if given. */
+ if( ovalue != NULL )
+ {
+ ( void ) timer_gettime( timerid, ovalue );
+ }
+
+ /* Stop the timer if it's currently active. */
+ if( ( iStatus == 0 ) && xTimerIsTimerActive( xTimerHandle ) )
+ {
+ ( void ) xTimerStop( xTimerHandle, portMAX_DELAY );
+ }
+
+ /* Only restart the timer if it_value is not zero. */
+ if( ( iStatus == 0 ) && TIMESPEC_IS_NOT_ZERO( value->it_value ) )
+ {
+ /* Convert it_interval to ticks, but only if it_interval is not 0. If
+ * it_interval is 0, then the timer is not periodic. */
+ if( TIMESPEC_IS_NOT_ZERO( value->it_interval ) )
+ {
+ ( void ) UTILS_TimespecToTicks( &value->it_interval, &xTimerExpirationPeriod );
+ }
+
+ /* Set the new timer period. A non-periodic timer will have its period set
+ * to portMAX_DELAY. */
+ pxTimer->xTimerPeriod = xTimerExpirationPeriod;
+
+ /* Convert it_value to ticks, but only if it_value is not 0. If it_value
+ * is 0, then the timer will remain disarmed. */
+ if( TIMESPEC_IS_NOT_ZERO( value->it_value ) )
+ {
+ /* Absolute timeout. */
+ if( ( flags & TIMER_ABSTIME ) == TIMER_ABSTIME )
+ {
+ struct timespec xCurrentTime = { 0 };
+
+ /* Get current time */
+ if( clock_gettime( CLOCK_REALTIME, &xCurrentTime ) != 0 )
+ {
+ iStatus = EINVAL;
+ }
+ else
+ {
+ iStatus = UTILS_AbsoluteTimespecToDeltaTicks( &value->it_value, &xCurrentTime, &xNextTimerExpiration );
+ }
+
+ /* Make sure xNextTimerExpiration is zero in case we got negative time difference */
+ if( iStatus != 0 )
+ {
+ xNextTimerExpiration = 0;
+
+ if( iStatus == ETIMEDOUT )
+ {
+ /* Set Status to 0 as absolute time is past is treated as expiry but not an error */
+ iStatus = 0;
+ }
+ }
+ }
+ /* Relative timeout. */
+ else
+ {
+ ( void ) UTILS_TimespecToTicks( &value->it_value, &xNextTimerExpiration );
+ }
+ }
+
+ /* If xNextTimerExpiration is still 0, that means that it_value specified
+ * an absolute timeout in the past. Per POSIX spec, a notification should be
+ * triggered immediately. */
+ if( xNextTimerExpiration == 0 )
+ {
+ prvTimerCallback( xTimerHandle );
+ }
+ else
+ {
+ /* Set the timer to expire at the it_value, then start it. */
+ ( void ) xTimerChangePeriod( xTimerHandle, xNextTimerExpiration, portMAX_DELAY );
+ xTimerCommandSent = xTimerStart( xTimerHandle, xNextTimerExpiration );
+
+ /* Wait until the timer start command is processed. */
+ while( ( xTimerCommandSent != pdFAIL ) && ( xTimerIsTimerActive( xTimerHandle ) == pdFALSE ) )
+ {
+ vTaskDelay( 1 );
+ }
+ }
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int timer_gettime( timer_t timerid,
+ struct itimerspec * value )
+{
+ TimerHandle_t xTimerHandle = timerid;
+ timer_internal_t * pxTimer = ( timer_internal_t * ) pvTimerGetTimerID( xTimerHandle );
+ TickType_t xNextExpirationTime = xTimerGetExpiryTime( xTimerHandle ) - xTaskGetTickCount(),
+ xTimerExpirationPeriod = pxTimer->xTimerPeriod;
+
+ /* Set it_value only if the timer is armed. Otherwise, set it to 0. */
+ if( xTimerIsTimerActive( xTimerHandle ) != pdFALSE )
+ {
+ value->it_value.tv_sec = ( time_t ) ( xNextExpirationTime / configTICK_RATE_HZ );
+ value->it_value.tv_nsec = ( long ) ( ( xNextExpirationTime % configTICK_RATE_HZ ) * NANOSECONDS_PER_TICK );
+ }
+ else
+ {
+ value->it_value.tv_sec = 0;
+ value->it_value.tv_nsec = 0;
+ }
+
+ /* Set it_interval only if the timer is periodic. Otherwise, set it to 0. */
+ if( xTimerExpirationPeriod != portMAX_DELAY )
+ {
+ value->it_interval.tv_sec = ( time_t ) ( xTimerExpirationPeriod / configTICK_RATE_HZ );
+ value->it_interval.tv_nsec = ( long ) ( ( xTimerExpirationPeriod % configTICK_RATE_HZ ) * NANOSECONDS_PER_TICK );
+ }
+ else
+ {
+ value->it_interval.tv_sec = 0;
+ value->it_interval.tv_nsec = 0;
+ }
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_unistd.c b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_unistd.c
new file mode 100644
index 0000000000000000000000000000000000000000..0d3d9144a591d457438d3c518740a16969e48b2b
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_unistd.c
@@ -0,0 +1,54 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_unistd.c
+ * @brief Implementation of functions in unistd.h
+ */
+
+/* FreeRTOS+POSIX includes. */
+#include "FreeRTOS_POSIX.h"
+#include "FreeRTOS_POSIX/unistd.h"
+
+/*-----------------------------------------------------------*/
+
+unsigned sleep( unsigned seconds )
+{
+ vTaskDelay( pdMS_TO_TICKS( seconds * 1000 ) );
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
+
+int usleep( useconds_t usec )
+{
+ /* To avoid delaying for less than usec, always round up. */
+ vTaskDelay( pdMS_TO_TICKS( usec / 1000 + ( usec % 1000 != 0 ) ) );
+
+ return 0;
+}
+
+/*-----------------------------------------------------------*/
diff --git a/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_utils.c b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_utils.c
new file mode 100644
index 0000000000000000000000000000000000000000..c12158787a4960449530fbfe057e134ac03f5b13
--- /dev/null
+++ b/third-party/freertos/posix/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_utils.c
@@ -0,0 +1,388 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file FreeRTOS_POSIX_utils.c
+ * @brief Implementation of utility functions in utils.h
+ */
+
+/* C standard library includes. */
+#include
+#include
+
+/* FreeRTOS+POSIX includes. */
+#include "FreeRTOS_POSIX.h"
+#include "FreeRTOS_POSIX/errno.h"
+#include "FreeRTOS_POSIX/utils.h"
+
+/*-----------------------------------------------------------*/
+
+size_t UTILS_strnlen( const char * const pcString,
+ size_t xMaxLength )
+{
+ const char * pcCharPointer = pcString;
+ size_t xLength = 0;
+
+ if( pcString != NULL )
+ {
+ while( ( *pcCharPointer != '\0' ) && ( xLength < xMaxLength ) )
+ {
+ xLength++;
+ pcCharPointer++;
+ }
+ }
+
+ return xLength;
+}
+
+/*-----------------------------------------------------------*/
+
+int UTILS_AbsoluteTimespecToDeltaTicks( const struct timespec * const pxAbsoluteTime,
+ const struct timespec * const pxCurrentTime,
+ TickType_t * const pxResult )
+{
+ int iStatus = 0;
+ struct timespec xDifference = { 0 };
+
+ /* Check parameters. */
+ if( ( pxAbsoluteTime == NULL ) || ( pxCurrentTime == NULL ) || ( pxResult == NULL ) )
+ {
+ iStatus = EINVAL;
+ }
+
+ /* Calculate the difference between the current time and absolute time. */
+ if( iStatus == 0 )
+ {
+ iStatus = UTILS_TimespecSubtract( pxAbsoluteTime, pxCurrentTime, &xDifference );
+
+ if( iStatus == 1 )
+ {
+ /* pxAbsoluteTime was in the past. */
+ iStatus = ETIMEDOUT;
+ }
+ else if( iStatus == -1 )
+ {
+ /* error */
+ iStatus = EINVAL;
+ }
+ }
+
+ /* Convert the time difference to ticks. */
+ if( iStatus == 0 )
+ {
+ iStatus = UTILS_TimespecToTicks( &xDifference, pxResult );
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int UTILS_TimespecToTicks( const struct timespec * const pxTimespec,
+ TickType_t * const pxResult )
+{
+ int iStatus = 0;
+ int64_t llTotalTicks = 0;
+ long lNanoseconds = 0;
+
+ /* Check parameters. */
+ if( ( pxTimespec == NULL ) || ( pxResult == NULL ) )
+ {
+ iStatus = EINVAL;
+ }
+ else if( ( iStatus == 0 ) && ( UTILS_ValidateTimespec( pxTimespec ) == false ) )
+ {
+ iStatus = EINVAL;
+ }
+
+ if( iStatus == 0 )
+ {
+ /* Convert timespec.tv_sec to ticks. */
+ llTotalTicks = ( int64_t ) configTICK_RATE_HZ * ( pxTimespec->tv_sec );
+
+ /* Convert timespec.tv_nsec to ticks. This value does not have to be checked
+ * for overflow because a valid timespec has 0 <= tv_nsec < 1000000000 and
+ * NANOSECONDS_PER_TICK > 1. */
+ lNanoseconds = pxTimespec->tv_nsec / ( long ) NANOSECONDS_PER_TICK + /* Whole nanoseconds. */
+ ( long ) ( pxTimespec->tv_nsec % ( long ) NANOSECONDS_PER_TICK != 0 ); /* Add 1 to round up if needed. */
+
+ /* Add the nanoseconds to the total ticks. */
+ llTotalTicks += ( int64_t ) lNanoseconds;
+
+ /* Check for overflow */
+ if( llTotalTicks < 0 )
+ {
+ iStatus = EINVAL;
+ }
+ else
+ {
+ /* check if TickType_t is 32 bit or 64 bit */
+ uint32_t ulTickTypeSize = sizeof( TickType_t );
+
+ /* check for downcast overflow */
+ if( ulTickTypeSize == sizeof( uint32_t ) )
+ {
+ if( llTotalTicks > UINT_MAX )
+ {
+ iStatus = EINVAL;
+ }
+ }
+ }
+
+ /* Write result. */
+ *pxResult = ( TickType_t ) llTotalTicks;
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+void UTILS_NanosecondsToTimespec( int64_t llSource,
+ struct timespec * const pxDestination )
+{
+ long lCarrySec = 0;
+
+ /* Convert to timespec. */
+ pxDestination->tv_sec = ( time_t ) ( llSource / NANOSECONDS_PER_SECOND );
+ pxDestination->tv_nsec = ( long ) ( llSource % NANOSECONDS_PER_SECOND );
+
+ /* Subtract from tv_sec if tv_nsec < 0. */
+ if( pxDestination->tv_nsec < 0L )
+ {
+ /* Compute the number of seconds to carry. */
+ lCarrySec = ( pxDestination->tv_nsec / ( long ) NANOSECONDS_PER_SECOND ) + 1L;
+
+ pxDestination->tv_sec -= ( time_t ) ( lCarrySec );
+ pxDestination->tv_nsec += lCarrySec * ( long ) NANOSECONDS_PER_SECOND;
+ }
+}
+
+/*-----------------------------------------------------------*/
+
+int UTILS_TimespecAdd( const struct timespec * const x,
+ const struct timespec * const y,
+ struct timespec * const pxResult )
+{
+ int64_t llPartialSec = 0;
+ int iStatus = 0;
+
+ /* Check parameters. */
+ if( ( pxResult == NULL ) || ( x == NULL ) || ( y == NULL ) )
+ {
+ iStatus = -1;
+ }
+
+ if( iStatus == 0 )
+ {
+ /* Perform addition. */
+ pxResult->tv_nsec = x->tv_nsec + y->tv_nsec;
+
+ /* check for overflow in case nsec value was invalid */
+ if( pxResult->tv_nsec < 0 )
+ {
+ iStatus = 1;
+ }
+ else
+ {
+ llPartialSec = ( pxResult->tv_nsec ) / NANOSECONDS_PER_SECOND;
+ pxResult->tv_nsec = ( pxResult->tv_nsec ) % NANOSECONDS_PER_SECOND;
+ pxResult->tv_sec = x->tv_sec + y->tv_sec + llPartialSec;
+
+ /* check for overflow */
+ if( pxResult->tv_sec < 0 )
+ {
+ iStatus = 1;
+ }
+ }
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int UTILS_TimespecAddNanoseconds( const struct timespec * const x,
+ int64_t llNanoseconds,
+ struct timespec * const pxResult )
+{
+ int64_t llTotalNSec = 0;
+ int iStatus = 0;
+
+ /* Check parameters. */
+ if( ( pxResult == NULL ) || ( x == NULL ) )
+ {
+ iStatus = -1;
+ }
+
+ if( iStatus == 0 )
+ {
+ /* add nano seconds */
+ llTotalNSec = x->tv_nsec + llNanoseconds;
+
+ /* check for nano seconds overflow */
+ if( llTotalNSec < 0 )
+ {
+ iStatus = 1;
+ }
+ else
+ {
+ pxResult->tv_nsec = llTotalNSec % NANOSECONDS_PER_SECOND;
+ pxResult->tv_sec = x->tv_sec + ( llTotalNSec / NANOSECONDS_PER_SECOND );
+
+ /* check for seconds overflow */
+ if( pxResult->tv_sec < 0 )
+ {
+ iStatus = 1;
+ }
+ }
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int UTILS_TimespecSubtract( const struct timespec * const x,
+ const struct timespec * const y,
+ struct timespec * const pxResult )
+{
+ int iCompareResult = 0;
+ int iStatus = 0;
+
+ /* Check parameters. */
+ if( ( pxResult == NULL ) || ( x == NULL ) || ( y == NULL ) )
+ {
+ iStatus = -1;
+ }
+
+ if( iStatus == 0 )
+ {
+ iCompareResult = UTILS_TimespecCompare( x, y );
+
+ /* if x < y then result would be negative, return 1 */
+ if( iCompareResult == -1 )
+ {
+ iStatus = 1;
+ }
+ else if( iCompareResult == 0 )
+ {
+ /* if times are the same return zero */
+ pxResult->tv_sec = 0;
+ pxResult->tv_nsec = 0;
+ }
+ else
+ {
+ /* If x > y Perform subtraction. */
+ pxResult->tv_sec = x->tv_sec - y->tv_sec;
+ pxResult->tv_nsec = x->tv_nsec - y->tv_nsec;
+
+ /* check if nano seconds value needs to borrow */
+ if( pxResult->tv_nsec < 0 )
+ {
+ /* Based on comparison, tv_sec > 0 */
+ pxResult->tv_sec--;
+ pxResult->tv_nsec += ( long ) NANOSECONDS_PER_SECOND;
+ }
+
+ /* if nano second is negative after borrow, it is an overflow error */
+ if( pxResult->tv_nsec < 0 )
+ {
+ iStatus = -1;
+ }
+ }
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+int UTILS_TimespecCompare( const struct timespec * const x,
+ const struct timespec * const y )
+{
+ int iStatus = 0;
+
+ /* Check parameters */
+ if( ( x == NULL ) && ( y == NULL ) )
+ {
+ iStatus = 0;
+ }
+ else if( y == NULL )
+ {
+ iStatus = 1;
+ }
+ else if( x == NULL )
+ {
+ iStatus = -1;
+ }
+ else if( x->tv_sec > y->tv_sec )
+ {
+ iStatus = 1;
+ }
+ else if( x->tv_sec < y->tv_sec )
+ {
+ iStatus = -1;
+ }
+ else
+ {
+ /* seconds are equal compare nano seconds */
+ if( x->tv_nsec > y->tv_nsec )
+ {
+ iStatus = 1;
+ }
+ else if( x->tv_nsec < y->tv_nsec )
+ {
+ iStatus = -1;
+ }
+ else
+ {
+ iStatus = 0;
+ }
+ }
+
+ return iStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+bool UTILS_ValidateTimespec( const struct timespec * const pxTimespec )
+{
+ bool xReturn = false;
+
+ if( pxTimespec != NULL )
+ {
+ /* Verify 0 <= tv_nsec < 1000000000. */
+ if( ( pxTimespec->tv_nsec >= 0 ) &&
+ ( pxTimespec->tv_nsec < NANOSECONDS_PER_SECOND ) )
+ {
+ xReturn = true;
+ }
+ }
+
+ return xReturn;
+}
+
+/*-----------------------------------------------------------*/
diff --git a/third-party/freertos/posix/LICENSE b/third-party/freertos/posix/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..90228dbb2d3638c1cbd50039c51e9e5cd6c6a8ad
--- /dev/null
+++ b/third-party/freertos/posix/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 FreeRTOS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/third-party/freertos/posix/README.md b/third-party/freertos/posix/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..be6b57b063210c7c8d952d9a530272b4de110afe
--- /dev/null
+++ b/third-party/freertos/posix/README.md
@@ -0,0 +1,12 @@
+## FreeRTOS+POSIX: Portable Operating System Interface (POSIX threading wrapper) for FreeRTOS
+
+The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. FreeRTOS+POSIX implements *a small subset* of the [POSIX threading](https://pubs.opengroup.org/onlinepubs/7908799/xsh/threads.html) API. This subset allows application developers familiar with POSIX API to develop a FreeRTOS application using POSIX like threading primitives. FreeRTOS+POSIX does not implement more than 80% of the POSIX API. Therefore, an existing POSIX compliant application or a POSIX compliant library cannot be ported to run on FreeRTOS Kernel using only this wrapper.
+
+
+This repository only contains source code. For demo applications, please visit https://github.com/FreeRTOS/FreeRTOS-Labs.
+
+## To consume FreeRTOS+POSIX
+It is recommended to use this repository as a submodule. Please refer to [Git Tools — Submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules).
+
+## Notes
+This project is undergoing optimizations or refactorization to improve memory usage, modularity, documentation, demo usability, or test coverage.
diff --git a/third-party/freertos/posix/include/FreeRTOS_POSIX/errno.h b/third-party/freertos/posix/include/FreeRTOS_POSIX/errno.h
new file mode 100644
index 0000000000000000000000000000000000000000..5ca3a320d416af07aaaf4e292d360ad6ec77d80d
--- /dev/null
+++ b/third-party/freertos/posix/include/FreeRTOS_POSIX/errno.h
@@ -0,0 +1,103 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file errno.h
+ * @brief System error numbers.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html
+ *
+ * The values defined in this file may not be compatible with the strerror
+ * function provided by this system.
+ */
+
+#ifndef _FREERTOS_POSIX_ERRNO_H_
+#define _FREERTOS_POSIX_ERRNO_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Undefine all errnos to avoid redefinition errors with system errnos. */
+#undef EPERM
+#undef ENOENT
+#undef EBADF
+#undef EAGAIN
+#undef ENOMEM
+#undef EEXIST
+#undef EBUSY
+#undef EINVAL
+#undef ENOSPC
+#undef ERANGE
+#undef ENAMETOOLONG
+#undef EDEADLK
+#undef EOVERFLOW
+#undef ENOSYS
+#undef EMSGSIZE
+#undef ENOTSUP
+#undef ETIMEDOUT
+
+/**
+ * @name Definition of POSIX errnos.
+ */
+/**@{ */
+#define EPERM 1 /**< Operation not permitted. */
+#define ENOENT 2 /**< No such file or directory. */
+#define EBADF 9 /**< Bad file descriptor. */
+#define EAGAIN 11 /**< Resource unavailable, try again. */
+#define ENOMEM 12 /**< Not enough space. */
+#define EEXIST 17 /**< File exists. */
+#define EBUSY 16 /**< Device or resource busy. */
+#define EINVAL 22 /**< Invalid argument. */
+#define ENOSPC 28 /**< No space left on device. */
+#define ERANGE 34 /**< Result too large. */
+#define ENAMETOOLONG 36 /**< File name too long. */
+#define EDEADLK 45 /**< Resource deadlock would occur. */
+#define EOVERFLOW 75 /**< Value too large to be stored in data type. */
+#define ENOSYS 88 /**< Function not supported. */
+#define EMSGSIZE 90 /**< Message too long. */
+#define ENOTSUP 95 /**< Operation not supported. */
+#define ETIMEDOUT 116 /**< Connection timed out. */
+/**@} */
+
+/**
+ * @name System Variable
+ *
+ * @brief Define FreeRTOS+POSIX errno, if enabled.
+ * Set configUSE_POSIX_ERRNO to enable, and clear to disable. See FreeRTOS.h.
+ *
+ * @{
+ */
+#if ( configUSE_POSIX_ERRNO == 1 )
+ extern int FreeRTOS_errno;
+ #define errno FreeRTOS_errno
+#endif
+/**@} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef _FREERTOS_POSIX_ERRNO_H_ */
diff --git a/third-party/freertos/posix/include/FreeRTOS_POSIX/fcntl.h b/third-party/freertos/posix/include/FreeRTOS_POSIX/fcntl.h
new file mode 100644
index 0000000000000000000000000000000000000000..e1b41d4f6c06706e6518bfbc365a78d233248e74
--- /dev/null
+++ b/third-party/freertos/posix/include/FreeRTOS_POSIX/fcntl.h
@@ -0,0 +1,87 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file fcntl.h
+ * @brief File control options.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/fcntl.h.html
+ */
+
+#ifndef _FREERTOS_POSIX_FCNTL_H_
+#define _FREERTOS_POSIX_FCNTL_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @name File creation flags for use in the oflag value to open() and openat().
+ */
+/**@{ */
+#define O_CLOEXEC 0x0001 /**< Close the file descriptor upon exec(). */
+#define O_CREAT 0x0002 /**< Create file if it does not exist. */
+#define O_DIRECTORY 0x0004 /**< Fail if file is a non-directory file. */
+#define O_EXCL 0x0008 /**< Exclusive use flag. */
+#define O_NOCTTY 0x0010 /**< Do not assign controlling terminal. */
+#define O_NOFOLLOW 0x0020 /**< Do not follow symbolic links. */
+#define O_TRUNC 0x0040 /**< Truncate flag. */
+#define O_TTY_INIT 0x0080 /**< termios structure provides conforming behavior. */
+/**@} */
+
+/**
+ * @name File status flags for open(), openat(), and fcntl().
+ */
+/**@{ */
+#define O_APPEND 0x0100 /**< Set append mode. */
+#define O_DSYNC 0x0200 /**< Write according to synchronized I/O data integrity completion. */
+#define O_NONBLOCK 0x0400 /**< Non-blocking mode. */
+#define O_RSYNC 0x0800 /**< Synchronized read I/O operations. */
+#define O_SYNC 0x0200 /**< Write according to synchronized I/O file integrity completion. */
+/**@} */
+
+/**
+ * @name Mask for file access modes.
+ */
+/**@{ */
+#define O_ACCMODE 0xF000
+/**@} */
+
+/**
+ * @name File access modes for open(), openat(), and fcntl().
+ */
+/**@{ */
+#define O_EXEC 0x1000 /**< Open for execute only (non-directory files). */
+#define O_RDONLY 0x2000 /**< Open for reading only. */
+#define O_RDWR 0xA000 /**< Open for reading and writing. */
+#define O_SEARCH 0x4000 /**< Open directory for search only. */
+#define O_WRONLY 0x8000 /**< Open for writing only. */
+/**@} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef _FREERTOS_POSIX_FCNTL_H_ */
diff --git a/third-party/freertos/posix/include/FreeRTOS_POSIX/mqueue.h b/third-party/freertos/posix/include/FreeRTOS_POSIX/mqueue.h
new file mode 100644
index 0000000000000000000000000000000000000000..4a2b164f82366b9991808f116516367e14bbb703
--- /dev/null
+++ b/third-party/freertos/posix/include/FreeRTOS_POSIX/mqueue.h
@@ -0,0 +1,258 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file mqueue.h
+ * @brief Message queues.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/mqueue.h.html
+ */
+
+#ifndef _FREERTOS_POSIX_MQUEUE_H_
+#define _FREERTOS_POSIX_MQUEUE_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* FreeRTOS+POSIX includes. */
+#include "FreeRTOS_POSIX/time.h"
+
+/**
+ * @brief Message queue descriptor.
+ */
+typedef void * mqd_t;
+
+/**
+ * @brief Message queue attributes.
+ */
+struct mq_attr
+{
+ long mq_flags; /**< Message queue flags. */
+ long mq_maxmsg; /**< Maximum number of messages. */
+ long mq_msgsize; /**< Maximum message size. */
+ long mq_curmsgs; /**< Number of messages currently queued. */
+};
+
+/**
+ * @brief Close a message queue.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_close.html
+ *
+ * @retval 0 - Upon successful completion
+ * @retval -1 - A error occurred. errno is also set.
+ *
+ * @sideeffect Possible errno values
+ *
+ * EBADF - The mqdes argument is not a valid message queue descriptor.
+ */
+int mq_close( mqd_t mqdes );
+
+/**
+ * @brief Get message queue attributes.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_getattr.html
+ *
+ * @retval 0 - Upon successful completion
+ * @retval -1 - A error occurred. errno is also set.
+ *
+ * @sideeffect Possible errno values
+ *
+ * DBADF - The mqdes argument is not a valid message queue descriptor.
+ */
+int mq_getattr( mqd_t mqdes,
+ struct mq_attr * mqstat );
+
+/**
+ * @brief Open a message queue.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_open.html
+ *
+ * @note Supported name pattern: leading <slash> character in name is always required;
+ * the maximum length (excluding null-terminator) of the name argument can be NAME_MAX.
+ * The default value of NAME_MAX in FreeRTOS_POSIX_portable_default.h is 64, which can be
+ * overwritten by user.
+ * @note mode argument is not supported.
+ * @note Supported oflags: O_RDWR, O_CREAT, O_EXCL, and O_NONBLOCK.
+ *
+ * @retval Message queue descriptor -- Upon successful completion
+ * @retval (mqd_t) - 1 -- An error occurred. errno is also set.
+ *
+ * @sideeffect Possible errno values
+ *
+ * EINVAL - name argument is invalid (not following name pattern),
+ * OR if O_CREAT is specified in oflag with attr argument not NULL and either mq_maxmsg or mq_msgsize is equal to or less than zero,
+ * OR either O_CREAT or O_EXCL is not set and a queue with the same name is unlinked but pending to be removed.
+ *
+ * EEXIST - O_CREAT and O_EXCL are set and the named message queue already exists.
+ *
+ * ENOSPC - There is insufficient space for the creation of the new message queue.
+ *
+ * ENOENT - O_CREAT is not set and the named message queue does not exist.
+ */
+mqd_t mq_open( const char * name,
+ int oflag,
+ mode_t mode,
+ struct mq_attr * attr );
+
+/**
+ * @brief Receive a message from a message queue.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_receive.html
+ *
+ * @note msg_prio argument is not supported. Messages are not checked for corruption.
+ *
+ * @retval The length of the selected message in bytes - Upon successful completion.
+ * The message is removed from the queue
+ * @retval -1 - An error occurred. errno is also set.
+ *
+ * @sideeffect Possible errno values
+ *
+ * EBADF - The mqdes argument is not a valid message queue descriptor open for reading.
+ *
+ * EMSGSIZE - The specified message buffer size, msg_len, is less than the message size attribute of the message queue.
+ *
+ * ETIMEDOUT - The O_NONBLOCK flag was not set when the message queue was opened,
+ * but no message arrived on the queue before the specified timeout expired.
+ *
+ * EAGAIN - O_NONBLOCK was set in the message description associated with mqdes, and the specified message queue is empty.
+ */
+ssize_t mq_receive( mqd_t mqdes,
+ char * msg_ptr,
+ size_t msg_len,
+ unsigned int * msg_prio );
+
+/**
+ * @brief Send a message to a message queue.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_send.html
+ *
+ * @note msg_prio argument is not supported.
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval -1 - An error occurred. errno is also set.
+ *
+ * @sideeffect Possible errno values
+ *
+ * EBADF - The mqdes argument is not a valid message queue descriptor open for writing.
+ *
+ * EMSGSIZE - The specified message length, msg_len, exceeds the message size attribute of the message queue,
+ * OR insufficient memory for the message to be sent.
+ *
+ * ETIMEDOUT - The O_NONBLOCK flag was not set when the message queue was opened,
+ * but the timeout expired before the message could be added to the queue.
+ *
+ * EAGAIN - The O_NONBLOCK flag is set in the message queue description associated with mqdes,
+ * and the specified message queue is full.
+ */
+int mq_send( mqd_t mqdes,
+ const char * msg_ptr,
+ size_t msg_len,
+ unsigned msg_prio );
+
+/**
+ * @brief Receive a message from a message queue with timeout.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_timedreceive.html
+ *
+ * @note msg_prio argument is not supported. Messages are not checked for corruption.
+ *
+ * @retval The length of the selected message in bytes - Upon successful completion.
+ * The message is removed from the queue
+ * @retval -1 - An error occurred. errno is also set.
+ *
+ * @sideeffect Possible errno values
+ *
+ * EBADF - The mqdes argument is not a valid message queue descriptor open for reading.
+ *
+ * EMSGSIZE - The specified message buffer size, msg_len, is less than the message size attribute of the message queue.
+ *
+ * EINVAL - The process or thread would have blocked, and the abstime parameter specified a nanoseconds field value
+ * less than zero or greater than or equal to 1000 million.
+ *
+ * ETIMEDOUT - The O_NONBLOCK flag was not set when the message queue was opened,
+ * but no message arrived on the queue before the specified timeout expired.
+ *
+ * EAGAIN - O_NONBLOCK was set in the message description associated with mqdes, and the specified message queue is empty.
+ */
+ssize_t mq_timedreceive( mqd_t mqdes,
+ char * msg_ptr,
+ size_t msg_len,
+ unsigned * msg_prio,
+ const struct timespec * abstime );
+
+/**
+ * @brief Send a message to a message queue with timeout.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_timedsend.html
+ *
+ * @note msg_prio argument is not supported.
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval -1 - An error occurred. errno is also set.
+ *
+ * @sideeffect Possible errno values
+ *
+ * EBADF - The mqdes argument is not a valid message queue descriptor open for writing.
+ *
+ * EMSGSIZE - The specified message length, msg_len, exceeds the message size attribute of the message queue,
+ * OR insufficient memory for the message to be sent.
+ *
+ * EINVAL - The process or thread would have blocked, and the abstime parameter specified a nanoseconds field
+ * value less than zero or greater than or equal to 1000 million.
+ *
+ * ETIMEDOUT - The O_NONBLOCK flag was not set when the message queue was opened,
+ * but the timeout expired before the message could be added to the queue.
+ *
+ * EAGAIN - The O_NONBLOCK flag is set in the message queue description associated with mqdes,
+ * and the specified message queue is full.
+ */
+int mq_timedsend( mqd_t mqdes,
+ const char * msg_ptr,
+ size_t msg_len,
+ unsigned msg_prio,
+ const struct timespec * abstime );
+
+/**
+ * @brief Remove a message queue.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_unlink.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval -1 - An error occurred. errno is also set.
+ *
+ * @sideeffect Possible errno values
+ *
+ * EINVAL - name argument is invalid. Refer to requirements on name argument in mq_open().
+ *
+ * ENOENT - The named message queue does not exist.
+ */
+int mq_unlink( const char * name );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef _FREERTOS_POSIX_MQUEUE_H_ */
diff --git a/third-party/freertos/posix/include/FreeRTOS_POSIX/pthread.h b/third-party/freertos/posix/include/FreeRTOS_POSIX/pthread.h
new file mode 100644
index 0000000000000000000000000000000000000000..5923326426fa9a488a15da89c4830a4fa1134072
--- /dev/null
+++ b/third-party/freertos/posix/include/FreeRTOS_POSIX/pthread.h
@@ -0,0 +1,520 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file pthread.h
+ * @brief Threads.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/pthread.h.html
+ */
+
+#ifndef _FREERTOS_POSIX_PTHREAD_H_
+#define _FREERTOS_POSIX_PTHREAD_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* FreeRTOS+POSIX includes. POSIX states that this header shall make symbols
+ * defined in sched.h and time.h visible. */
+#include "FreeRTOS_POSIX/sched.h"
+#include "FreeRTOS_POSIX/time.h"
+
+/**
+ * @name pthread detach state.
+ */
+/**@{ */
+#define PTHREAD_CREATE_DETACHED 0 /**< Detached. */
+#define PTHREAD_CREATE_JOINABLE 1 /**< Joinable (default). */
+/**@} */
+
+/**
+ * @name Returned to a single thread after a successful pthread_barrier_wait.
+ *
+ * @brief POSIX specifies that "The constant PTHREAD_BARRIER_SERIAL_THREAD is defined in
+ * and its value shall be distinct from any other value returned by pthread_barrier_wait()."
+ * So it's defined as negative to distinguish it from the errnos, which are positive.
+ */
+#define PTHREAD_BARRIER_SERIAL_THREAD ( -2 )
+
+/**
+ * @name Mutex types.
+ */
+/**@{ */
+#ifndef PTHREAD_MUTEX_NORMAL
+ #define PTHREAD_MUTEX_NORMAL 0 /**< Non-robust, deadlock on relock, does not remember owner. */
+#endif
+#ifndef PTHREAD_MUTEX_ERRORCHECK
+ #define PTHREAD_MUTEX_ERRORCHECK 1 /**< Non-robust, error on relock, remembers owner. */
+#endif
+#ifndef PTHREAD_MUTEX_RECURSIVE
+ #define PTHREAD_MUTEX_RECURSIVE 2 /**< Non-robust, recursive relock, remembers owner. */
+#endif
+#ifndef PTHREAD_MUTEX_DEFAULT
+ #define PTHREAD_MUTEX_DEFAULT PTHREAD_MUTEX_NORMAL /**< PTHREAD_MUTEX_NORMAL (default). */
+#endif
+/**@} */
+
+/**
+ * @name Compile-time initializers.
+ *
+ * @brief To use PTHREAD_COND_INITIALIZER, posixconfigENABLE_PTHREAD_COND_T needs to be set to 1
+ * in port specific POSIX config file.
+ *
+ * To use PTHREAD_MUTEX_INITIALIZER, posixconfigENABLE_PTHREAD_MUTEX_T needs to be set to 1 in
+ * port specific POSIX config file.
+ */
+/**@{ */
+#if posixconfigENABLE_PTHREAD_COND_T == 1
+ #define PTHREAD_COND_INITIALIZER FREERTOS_POSIX_COND_INITIALIZER /**< pthread_cond_t. */
+#endif
+
+#if posixconfigENABLE_PTHREAD_MUTEX_T == 1
+ #define PTHREAD_MUTEX_INITIALIZER FREERTOS_POSIX_MUTEX_INITIALIZER /**< pthread_mutex_t. */
+#endif
+
+/**@} */
+
+/**
+ * @brief Destroy the thread attributes object.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_destroy.html
+ *
+ * @retval 0 - Upon successful completion.
+ */
+int pthread_attr_destroy( pthread_attr_t * attr );
+
+/**
+ * @brief Get detachstate attribute.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_getdetachstate.html
+ *
+ * @retval 0 - Upon successful completion.
+ */
+int pthread_attr_getdetachstate( const pthread_attr_t * attr,
+ int * detachstate );
+
+/**
+ * @brief Get schedparam attribute.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_getschedparam.html
+ *
+ * @retval 0 - Upon successful completion.
+ */
+int pthread_attr_getschedparam( const pthread_attr_t * attr,
+ struct sched_param * param );
+
+/**
+ * @brief Get stacksize attribute.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_getstacksize.html
+ *
+ * @retval 0 - Upon successful completion.
+ */
+int pthread_attr_getstacksize( const pthread_attr_t * attr,
+ size_t * stacksize );
+
+/**
+ * @brief Initialize the thread attributes object.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_init.html
+ *
+ * @retval 0 - Upon successful completion.
+ *
+ * @note Currently, only stack size, sched_param, and detach state attributes
+ * are supported. Also see pthread_attr_get*() and pthread_attr_set*().
+ */
+int pthread_attr_init( pthread_attr_t * attr );
+
+/**
+ * @brief Set detachstate attribute.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_setdetachstate.html
+ *
+ * @retval 0 - Upon successful completion
+ * @retval EINVAL - The value of detachstate is not valid. Currently, supported detach states are --
+ * PTHREAD_CREATE_DETACHED and PTHREAD_CREATE_JOINABLE.
+ */
+int pthread_attr_setdetachstate( pthread_attr_t * attr,
+ int detachstate );
+
+/**
+ * @brief Set schedparam attribute.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_setschedparam.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval EINVAL - The value of param is not valid.
+ * @retval ENOTSUP - An attempt was made to set the attribute to an unsupported value.
+ */
+int pthread_attr_setschedparam( pthread_attr_t * attr,
+ const struct sched_param * param );
+
+/**
+ * @brief Set the schedpolicy attribute.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_setschedpolicy.html
+ *
+ * @retval 0 - Upon successful completion.
+ *
+ * @warning This function is a stub and always returns 0.
+ */
+int pthread_attr_setschedpolicy( pthread_attr_t * attr,
+ int policy );
+
+/**
+ * @brief Set stacksize attribute.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_setstacksize.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval EINVAL - The value of stacksize is less than {PTHREAD_STACK_MIN}.
+ */
+int pthread_attr_setstacksize( pthread_attr_t * attr,
+ size_t stacksize );
+
+/**
+ * @brief Destroy a barrier object.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_barrier_destroy.html
+ *
+ * @retval 0 - Upon successful completion.
+ *
+ * @note This function does not validate whether there is any thread blocking on the barrier before destroying.
+ */
+int pthread_barrier_destroy( pthread_barrier_t * barrier );
+
+/**
+ * @brief Initialize a barrier object.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_barrier_init.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval EINVAL - The value specified by count is equal to zero.
+ * @retval ENOMEM - count cannot fit into FreeRTOS event group type OR insufficient memory exists to initialize the barrier.
+ *
+ * @note attr is ignored.
+ *
+ * @note pthread_barrier_init() is implemented with FreeRTOS event group.
+ * To ensure count fits in event group, count may be at most 8 when configUSE_16_BIT_TICKS is 1;
+ * it may be at most 24 otherwise. configUSE_16_BIT_TICKS is configured in application FreeRTOSConfig.h
+ * file, which defines how many bits tick count type has. See further details and limitation about event
+ * group and configUSE_16_BIT_TICKS in FreeRTOS site.
+ */
+int pthread_barrier_init( pthread_barrier_t * barrier,
+ const pthread_barrierattr_t * attr,
+ unsigned count );
+
+/**
+ * @brief Synchronize at a barrier.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_barrier_wait.html
+ *
+ * @retval PTHREAD_BARRIER_SERIAL_THREAD - Upon successful completion, the first thread.
+ * @retval 0 - Upon successful completion, other thread(s).
+ */
+int pthread_barrier_wait( pthread_barrier_t * barrier );
+
+/**
+ * @brief Thread creation.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_create.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval EAGAIN - Insufficient memory for either thread structure or task creation.
+ */
+int pthread_create( pthread_t * thread,
+ const pthread_attr_t * attr,
+ void *( *startroutine )( void * ),
+ void * arg );
+
+/**
+ * @brief Broadcast a condition.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_cond_broadcast.html
+ *
+ * @retval 0 - Upon successful completion.
+ */
+int pthread_cond_broadcast( pthread_cond_t * cond );
+
+/**
+ * @brief Destroy condition variables.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_cond_destroy.html
+ *
+ * @retval 0 - Upon successful completion.
+ */
+int pthread_cond_destroy( pthread_cond_t * cond );
+
+/**
+ * @brief Initialize condition variables.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_cond_init.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval ENOMEM - Insufficient memory exists to initialize the condition variable.
+ *
+ * @note attr is ignored and treated as NULL. Default setting is always used.
+ */
+int pthread_cond_init( pthread_cond_t * cond,
+ const pthread_condattr_t * attr );
+
+/**
+ * @brief Signal a condition.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_cond_signal.html
+ *
+ * @retval 0 - Upon successful completion.
+ */
+int pthread_cond_signal( pthread_cond_t * cond );
+
+/**
+ * @brief Wait on a condition with a timeout.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_cond_timedwait.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval EINVAL - The abstime argument passed in does not refer to an initialized structure OR
+ * the abstime parameter specified a nanoseconds field value less than zero or
+ * greater than or equal to 1000 million.
+ * @retval ETIMEDOUT - The time specified by abstime to pthread_cond_timedwait() has passed.
+ */
+int pthread_cond_timedwait( pthread_cond_t * cond,
+ pthread_mutex_t * mutex,
+ const struct timespec * abstime );
+
+/**
+ * @brief Wait on a condition.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_cond_wait.html
+ *
+ * @retval 0 - Upon successful completion.
+ */
+int pthread_cond_wait( pthread_cond_t * cond,
+ pthread_mutex_t * mutex );
+
+/**
+ * @brief Compare thread IDs.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_equal.html
+ *
+ * @retval 0 - t1 and t2 are both not NULL && equal.
+ * @retval non-zero - otherwise.
+ */
+int pthread_equal( pthread_t t1,
+ pthread_t t2 );
+
+/**
+ * @brief Thread termination.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_exit.html
+ *
+ * @retval void - this function cannot return to its caller.
+ */
+void pthread_exit( void * value_ptr );
+
+/**
+ * @brief Dynamic thread scheduling parameters access.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_getschedparam.html
+ *
+ * @retval 0 - Upon successful completion.
+ *
+ * @note policy is always set to SCHED_OTHER by this function.
+ */
+int pthread_getschedparam( pthread_t thread,
+ int * policy,
+ struct sched_param * param );
+
+/**
+ * @brief Wait for thread termination.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_join.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval EDEADLK - The value specified by the thread argument to pthread_join() does not refer
+ * to a joinable thread OR multiple simultaneous calls to pthread_join()
+ * specifying the same target thread OR the value specified by the thread argument
+ * to pthread_join() refers to the calling thread.
+ */
+int pthread_join( pthread_t thread,
+ void ** retval );
+
+/**
+ * @brief Marks the thread identified by thread as detached.
+ *
+ * @see https://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_detach.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval EINVAL - The implementation has detected that the value specified by thread does not refer
+ * to a joinable thread.
+ */
+int pthread_detach(pthread_t thread);
+
+/**
+ * @brief Destroy a mutex.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_destroy.html
+ *
+ * @retval 0 - Upon successful completion.
+ *
+ * @note If there exists a thread holding this mutex, this function returns 0 with mutex not being destroyed.
+ */
+int pthread_mutex_destroy( pthread_mutex_t * mutex );
+
+/**
+ * @brief Initialize a mutex.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_init.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval ENOMEM - Insufficient memory exists to initialize the mutex structure.
+ * @retval EAGAIN - Unable to initialize the mutex structure member(s).
+ */
+int pthread_mutex_init( pthread_mutex_t * mutex,
+ const pthread_mutexattr_t * attr );
+
+/**
+ * @brief Lock a mutex.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_lock.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval EINVAL - the abstime parameter specified a nanoseconds field value less than zero
+ * or greater than or equal to 1000 million.
+ * @retval EDEADLK - The mutex type is PTHREAD_MUTEX_ERRORCHECK and the current thread already
+ * owns the mutex.
+ */
+int pthread_mutex_lock( pthread_mutex_t * mutex );
+
+/**
+ * @brief Lock a mutex with timeout.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_timedlock.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval EINVAL - The abstime argument passed in does not refer to an initialized structure OR
+ * the abstime parameter specified a nanoseconds field value less than zero or
+ * greater than or equal to 1000 million.
+ * @retval EDEADLK - The mutex type is PTHREAD_MUTEX_ERRORCHECK and the current thread already owns the mutex.
+ * @retval ETIMEDOUT - The mutex could not be locked before the specified timeout expired.
+ */
+int pthread_mutex_timedlock( pthread_mutex_t * mutex,
+ const struct timespec * abstime );
+
+/**
+ * @brief Attempt to lock a mutex. Fail immediately if mutex is already locked.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_trylock.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval EINVAL - the abstime parameter specified a nanoseconds field value less than zero
+ * or greater than or equal to 1000 million.
+ * @retval EDEADLK - The mutex type is PTHREAD_MUTEX_ERRORCHECK and the current thread already
+ * owns the mutex.
+ * @retval EBUSY - The mutex could not be acquired because it was already locked.
+ */
+int pthread_mutex_trylock( pthread_mutex_t * mutex );
+
+/**
+ * @brief Unlock a mutex.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_unlock.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval EPERM - The mutex type is PTHREAD_MUTEX_ERRORCHECK or PTHREAD_MUTEX_RECURSIVE, and
+ * the current thread does not own the mutex.
+ */
+int pthread_mutex_unlock( pthread_mutex_t * mutex );
+
+/**
+ * @brief Destroy the mutex attributes object.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_destroy.html
+ *
+ * @retval 0 - Upon successful completion.
+ */
+int pthread_mutexattr_destroy( pthread_mutexattr_t * attr );
+
+/**
+ * @brief Get the mutex type attribute.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_gettype.html
+ *
+ * @retval 0 - Upon successful completion.
+ */
+int pthread_mutexattr_gettype( const pthread_mutexattr_t * attr,
+ int * type );
+
+/**
+ * @brief Initialize the mutex attributes object.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_init.html
+ *
+ * @retval 0 - Upon successful completion.
+ *
+ * @note Currently, only the type attribute is supported. Also see pthread_mutexattr_settype()
+ * and pthread_mutexattr_gettype().
+ */
+int pthread_mutexattr_init( pthread_mutexattr_t * attr );
+
+/**
+ * @brief Set the mutex type attribute.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_settype.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval EINVAL - The value type is invalid.
+ */
+int pthread_mutexattr_settype( pthread_mutexattr_t * attr,
+ int type );
+
+/**
+ * @brief Get the calling thread ID.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_self.html
+ *
+ * @retval the thread ID of the calling thread.
+ */
+pthread_t pthread_self( void );
+
+/**
+ * @brief Dynamic thread scheduling parameters access.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_setschedparam.html
+ *
+ * @note policy is ignored; only priority (param.sched_priority) may be changed.
+ *
+ * @retval 0 - Upon successful completion.
+ */
+int pthread_setschedparam( pthread_t thread,
+ int policy,
+ const struct sched_param * param );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FREERTOS_POSIX_PTHREAD_H_ */
diff --git a/third-party/freertos/posix/include/FreeRTOS_POSIX/sched.h b/third-party/freertos/posix/include/FreeRTOS_POSIX/sched.h
new file mode 100644
index 0000000000000000000000000000000000000000..b6e79e9ae83d92c5264ebc1e3615c90c3bd31ab9
--- /dev/null
+++ b/third-party/freertos/posix/include/FreeRTOS_POSIX/sched.h
@@ -0,0 +1,92 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file sched.h
+ * @brief Execution scheduling.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sched.h.html
+ */
+
+#ifndef _FREERTOS_POSIX_SCHED_H_
+#define _FREERTOS_POSIX_SCHED_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @name Scheduling Policies
+ */
+/**@{ */
+#define SCHED_OTHER 0 /**< Another scheduling policy. */
+/**@} */
+
+/**
+ * @brief Scheduling parameters required for implementation of each supported
+ * scheduling policy.
+ */
+struct sched_param
+{
+ int sched_priority; /**< Process or thread execution scheduling priority. */
+};
+
+/**
+ * @brief Get priority limit (max).
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/sched_get_priority_max.html
+ *
+ * @note policy is ignored.
+ *
+ * @return the maximum priority value (0-based) system configuration allows.
+ *
+ * e.g. if configMAX_PRIORITIES == 7, this function returns (configMAX_PRIORITIES - 1).
+ * configMAX_PRIORITIES is configured in application FreeRTOSConfig.h file.
+ */
+int sched_get_priority_max( int policy );
+
+/**
+ * @brief Get priority limit (min).
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/sched_get_priority_min.html
+ *
+ * @note policy is ignored.
+ */
+int sched_get_priority_min( int policy );
+
+/**
+ * @brief Yield the processor.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/sched_yield.html
+ *
+ * @retval 0 - Upon successful completion
+ */
+int sched_yield( void );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef _FREERTOS_POSIX_SCHED_H_ */
diff --git a/third-party/freertos/posix/include/FreeRTOS_POSIX/semaphore.h b/third-party/freertos/posix/include/FreeRTOS_POSIX/semaphore.h
new file mode 100644
index 0000000000000000000000000000000000000000..661809a808567fc377def6e7922c2f844c244071
--- /dev/null
+++ b/third-party/freertos/posix/include/FreeRTOS_POSIX/semaphore.h
@@ -0,0 +1,151 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file semaphore.h
+ * @brief Semaphores.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/semaphore.h.html
+ */
+
+#ifndef _FREERTOS_POSIX_SEMAPHORE_H_
+#define _FREERTOS_POSIX_SEMAPHORE_H_
+
+/* FreeRTOS+POSIX includes. */
+#include "FreeRTOS_POSIX/time.h"
+#include "FreeRTOS_POSIX_types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief Semaphore type.
+ */
+typedef PosixSemType_t sem_t;
+
+/**
+ * @brief Destroy an unnamed semaphore.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_destroy.html
+ *
+ * @retval 0 - upon successful completion
+ *
+ * @note Semaphore is destroyed regardless of whether there is any thread currently blocked on this semaphore.
+ */
+int sem_destroy( sem_t * sem );
+
+/**
+ * @brief Get the value of a semaphore.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_getvalue.html
+ *
+ * @retval 0 - Upon successful completion
+ *
+ * @note If sem is locked, then the object to which sval points is set to zero.
+ */
+int sem_getvalue( sem_t * sem,
+ int * sval );
+
+/**
+ * @brief Initialize an unnamed semaphore.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_init.html
+ *
+ * @note pshared is ignored. Semaphores will always be considered "shared".
+ *
+ * @retval 0 - upon successful completion
+ * @retval -1 - otherwise. System error variable errno is also set in this case.
+ *
+ * @sideeffect Possible errno values
+ *
+ * EINVAL - The value argument exceeds {SEM_VALUE_MAX}.
+ *
+ * ENOSPC - A resource required to initialize the semaphore has been exhausted.
+ */
+int sem_init( sem_t * sem,
+ int pshared,
+ unsigned value );
+
+/**
+ * @brief Unlock a semaphore.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_post.html
+ *
+ * @retval 0 - upon successful completion
+ */
+int sem_post( sem_t * sem );
+
+/**
+ * @brief Lock a semaphore with timeout.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_timedwait.html
+ *
+ * @retval 0 - upon successful completion
+ * @retval -1 - otherwise. System error variable errno is also set in this case.
+ *
+ * @sideeffect Possible errno values
+ *
+ * EINVAL - parameter specified a nanoseconds field value less than zero or greater
+ * than or equal to 1000 million
+ *
+ * ETIMEDOUT - The semaphore could not be locked before the specified timeout expired.
+ *
+ * @note Deadlock detection is not implemented.
+ */
+int sem_timedwait( sem_t * sem,
+ const struct timespec * abstime );
+
+/**
+ * @brief Lock a semaphore if available.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_trywait.html
+ *
+ * @retval 0 - upon successful completion
+ * @retval -1 - otherwise. System error variable errno is also set in this case.
+ *
+ * @sideeffect Possible errno values
+ *
+ * EAGAIN - The semaphore was already locked, so it cannot be immediately locked by the sem_trywait() operation.
+ */
+int sem_trywait( sem_t * sem );
+
+/**
+ * @brief Lock a semaphore.
+ *
+ * @see http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_wait.html
+ *
+ * @retval 0 - upon successful completion
+ * @retval -1 - otherwise. System error variable errno is also set in this case.
+ *
+ * @note Deadlock detection is not implemented.
+ */
+int sem_wait( sem_t * sem );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef _FREERTOS_POSIX_SEMAPHORE_H_ */
diff --git a/third-party/freertos/posix/include/FreeRTOS_POSIX/signal.h b/third-party/freertos/posix/include/FreeRTOS_POSIX/signal.h
new file mode 100644
index 0000000000000000000000000000000000000000..d99aa4af4a55359c5b9a15c4160bccecd6c017ab
--- /dev/null
+++ b/third-party/freertos/posix/include/FreeRTOS_POSIX/signal.h
@@ -0,0 +1,78 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file signal.h
+ * @brief Signals.
+ *
+ * Signals are currently not implemented in FreeRTOS+POSIX. This header only
+ * defines the signal data structures used elsewhere.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/signal.h.html
+ */
+
+
+#ifndef _FREERTOS_POSIX_SIGNAL_H_
+#define _FREERTOS_POSIX_SIGNAL_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @name Values of sigev_notify.
+ */
+/**@{ */
+#define SIGEV_NONE 0 /**< No asynchronous notification is delivered when the event of interest occurs. */
+#define SIGEV_SIGNAL 1 /**< A queued signal, with an application-defined value, is generated when the event of interest occurs. Not supported. */
+#define SIGEV_THREAD 2 /**< A notification function is called to perform notification. */
+/**@} */
+
+/**
+ * @brief Signal value.
+ */
+union sigval
+{
+ int sival_int; /**< Integer signal value. */
+ void * sival_ptr; /**< Pointer signal value. */
+};
+
+/**
+ * @brief Signal event structure.
+ */
+struct sigevent
+{
+ int sigev_notify; /**< Notification type. A value of SIGEV_SIGNAL is not supported. */
+ int sigev_signo; /**< Signal number. This member is ignored. */
+ union sigval sigev_value; /**< Signal value. Only the sival_ptr member is used. */
+ void ( * sigev_notify_function )( union sigval ); /**< Notification function. */
+ pthread_attr_t * sigev_notify_attributes; /**< Notification attributes. */
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef _FREERTOS_POSIX_SIGNAL_H_ */
diff --git a/third-party/freertos/posix/include/FreeRTOS_POSIX/sys/types.h b/third-party/freertos/posix/include/FreeRTOS_POSIX/sys/types.h
new file mode 100644
index 0000000000000000000000000000000000000000..c443cabc2d67944bf8b78354806d285790afcd0d
--- /dev/null
+++ b/third-party/freertos/posix/include/FreeRTOS_POSIX/sys/types.h
@@ -0,0 +1,200 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file sys/types.h
+ * @brief Data types.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html
+ */
+
+#ifndef _FREERTOS_POSIX_TYPES_H_
+#define _FREERTOS_POSIX_TYPES_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* C standard library includes. */
+#include
+
+/* FreeRTOS types include */
+#include "FreeRTOS_POSIX.h"
+#include "FreeRTOS_POSIX_types.h"
+
+/**
+ * @brief Used for system times in clock ticks or CLOCKS_PER_SEC.
+ *
+ * Enabled/disabled by posixconfigENABLE_CLOCK_T.
+ */
+#if !defined( posixconfigENABLE_CLOCK_T ) || ( posixconfigENABLE_CLOCK_T == 1 )
+ typedef uint32_t clock_t;
+#endif
+
+/**
+ * @brief Used for clock ID type in the clock and timer functions.
+ *
+ * Enabled/disabled by posixconfigENABLE_CLOCKID_T.
+ */
+#if !defined( posixconfigENABLE_CLOCKID_T ) || ( posixconfigENABLE_CLOCKID_T == 1 )
+ typedef int clockid_t;
+#endif
+
+/**
+ * @brief Used for some file attributes.
+ *
+ * Enabled/disabled by posixconfigENABLE_MODE_T.
+ */
+#if !defined( posixconfigENABLE_MODE_T ) || ( posixconfigENABLE_MODE_T == 1 )
+ typedef int mode_t;
+#endif
+
+/**
+ * @brief Used for process IDs and process group IDs.
+ *
+ * Enabled/disabled by posixconfigENABLE_PID_T.
+ */
+#if !defined( posixconfigENABLE_PID_T ) || ( posixconfigENABLE_PID_T == 1 )
+ typedef int pid_t;
+#endif
+
+/**
+ * @brief Used to identify a thread attribute object.
+ *
+ * Enabled/disabled by posixconfigENABLE_PTHREAD_ATTR_T.
+ */
+#if !defined( posixconfigENABLE_PTHREAD_ATTR_T ) || ( posixconfigENABLE_PTHREAD_ATTR_T == 1 )
+ typedef PthreadAttrType_t pthread_attr_t;
+#endif
+
+/**
+ * @brief Used to identify a barrier.
+ *
+ * Enabled/disabled by posixconfigENABLE_PTHREAD_BARRIER_T.
+ */
+#if !defined( posixconfigENABLE_PTHREAD_BARRIER_T ) || ( posixconfigENABLE_PTHREAD_BARRIER_T == 1 )
+ typedef PthreadBarrierType_t pthread_barrier_t;
+#endif
+
+/**
+ * @brief Used to define a barrier attributes object.
+ */
+typedef void * pthread_barrierattr_t;
+
+/**
+ * @brief Used for condition variables.
+ *
+ * Enabled/disabled by posixconfigENABLE_PTHREAD_COND_T.
+ */
+#if !defined( posixconfigENABLE_PTHREAD_COND_T ) || ( posixconfigENABLE_PTHREAD_COND_T == 1 )
+ typedef PthreadCondType_t pthread_cond_t;
+#endif
+
+/**
+ * @brief Used to identify a condition attribute object.
+ *
+ * Enabled/disabled by posixconfigENABLE_PTHREAD_CONDATTR_T.
+ */
+#if !defined( posixconfigENABLE_PTHREAD_CONDATTR_T ) || ( posixconfigENABLE_PTHREAD_CONDATTR_T == 1 )
+ typedef void * pthread_condattr_t;
+#endif
+
+/**
+ * @brief Used for mutexes.
+ *
+ * Enabled/disabled by posixconfigENABLE_PTHREAD_MUTEX_T.
+ */
+#if !defined( posixconfigENABLE_PTHREAD_MUTEX_T ) || ( posixconfigENABLE_PTHREAD_MUTEX_T == 1 )
+ typedef PthreadMutexType_t pthread_mutex_t;
+#endif
+
+/**
+ * @brief Used to identify a mutex attribute object.
+ *
+ * Enabled/disabled by posixconfigENABLE_PTHREAD_MUTEXATTR_T.
+ */
+#if !defined( posixconfigENABLE_PTHREAD_MUTEXATTR_T ) || ( posixconfigENABLE_PTHREAD_MUTEXATTR_T == 1 )
+ typedef PthreadMutexAttrType_t pthread_mutexattr_t;
+#endif
+
+/**
+ * @brief Used to identify a thread.
+ *
+ * Enabled/disabled by posixconfigENABLE_PTHREAD_T.
+ */
+#if !defined( posixconfigENABLE_PTHREAD_T ) || ( posixconfigENABLE_PTHREAD_T == 1 )
+ typedef void * pthread_t;
+#endif
+
+/**
+ * @brief Used for a count of bytes or an error indication.
+ *
+ * Enabled/disabled by posixconfigENABLE_SSIZE_T.
+ */
+#if !defined( posixconfigENABLE_SSIZE_T ) || ( posixconfigENABLE_SSIZE_T == 1 )
+ typedef int ssize_t;
+#endif
+
+/**
+ * @brief Used for time in seconds.
+ *
+ * Enabled/disabled by posixconfigENABLE_TIME_T.
+ */
+#if !defined( posixconfigENABLE_TIME_T ) || ( posixconfigENABLE_TIME_T == 1 )
+ typedef int64_t time_t;
+#endif
+
+/**
+ * @brief Used for timer ID returned by timer_create().
+ *
+ * Enabled/disabled by posixconfigENABLE_TIMER_T.
+ */
+#if !defined( posixconfigENABLE_TIMER_T ) || ( posixconfigENABLE_TIMER_T == 1 )
+ typedef void * timer_t;
+#endif
+
+/**
+ * @brief Used for time in microseconds.
+ *
+ * Enabled/disabled by posixconfigENABLE_USECONDS_T.
+ */
+#if !defined( posixconfigENABLE_USECONDS_T ) || ( posixconfigENABLE_USECONDS_T == 1 )
+ typedef unsigned long useconds_t;
+#endif
+
+/**
+ * @brief Used for file sizes.
+ *
+ * Enabled/disabled by posixconfigENABLE_OFF_T.
+ */
+#if !defined( posixconfigENABLE_OFF_T ) || ( posixconfigENABLE_OFF_T == 1 )
+ typedef long int off_t;
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef _FREERTOS_POSIX_TYPES_H_ */
diff --git a/third-party/freertos/posix/include/FreeRTOS_POSIX/time.h b/third-party/freertos/posix/include/FreeRTOS_POSIX/time.h
new file mode 100644
index 0000000000000000000000000000000000000000..7a0b903efab3655771f2fb88e0a3c4abab0398cf
--- /dev/null
+++ b/third-party/freertos/posix/include/FreeRTOS_POSIX/time.h
@@ -0,0 +1,266 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file time.h
+ * @brief Time types.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/time.h.html
+ */
+
+#ifndef _FREERTOS_POSIX_TIME_H_
+#define _FREERTOS_POSIX_TIME_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* FreeRTOS+POSIX includes. */
+#include "FreeRTOS_POSIX/sys/types.h"
+#include "FreeRTOS_POSIX/signal.h"
+
+/**
+ * @name Unit conversion constants.
+ */
+/**@{ */
+#define MICROSECONDS_PER_SECOND ( 1000000LL ) /**< Microseconds per second. */
+#define NANOSECONDS_PER_SECOND ( 1000000000LL ) /**< Nanoseconds per second. */
+#define NANOSECONDS_PER_TICK ( NANOSECONDS_PER_SECOND / configTICK_RATE_HZ ) /**< Nanoseconds per FreeRTOS tick. */
+/**@} */
+
+/**
+ * @name Clock identifiers.
+ */
+/**@{ */
+#define CLOCK_REALTIME 0 /**< The identifier of the system-wide clock measuring real time. */
+#define CLOCK_MONOTONIC 1 /**< The identifier for the system-wide monotonic clock.*/
+/**@} */
+
+/**
+ * @name A number used to convert the value returned by the clock() function into seconds.
+ */
+/**@{ */
+#define CLOCKS_PER_SEC ( ( clock_t ) configTICK_RATE_HZ )
+/**@} */
+
+/**
+ * @name Flag indicating time is absolute.
+ *
+ * For functions taking timer objects, this refers to the clock associated with the timer.
+ */
+/**@{ */
+#define TIMER_ABSTIME 0x01
+/**@} */
+
+#if !defined( posixconfigENABLE_TIMESPEC ) || ( posixconfigENABLE_TIMESPEC == 1 )
+
+/**
+ * @brief represents an elapsed time
+ */
+ struct timespec
+ {
+ time_t tv_sec; /**< Seconds. */
+ long tv_nsec; /**< Nanoseconds. */
+ };
+#endif
+
+#if !defined( posixconfigENABLE_ITIMERSPEC ) || ( posixconfigENABLE_ITIMERSPEC == 1 )
+
+/**
+ * @brief timer
+ */
+ struct itimerspec
+ {
+ struct timespec it_interval; /**< Timer period. */
+ struct timespec it_value; /**< Timer expiration. */
+ };
+#endif
+
+/**
+ * @brief Report CPU time used.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/clock.html
+ *
+ * @return The number of FreeRTOS ticks since the scheduler
+ * was started minus the ticks spent in the idle task.
+ *
+ * @note This function does NOT report the number of ticks spent by the calling thread.
+ */
+// clock_t clock( void );
+
+/**
+ * @brief Access a process CPU-time clock.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_getcpuclockid.html
+ *
+ * @retval EPERM
+ *
+ * @note This function is currently unsupported.
+ *
+ */
+int clock_getcpuclockid( pid_t pid,
+ clockid_t * clock_id );
+
+/**
+ * @brief Returns the resolution of a clock.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_getres.html
+ *
+ * @note clock_id is ignored
+ * @note This function stores the resolution of the FreeRTOS tick count in the object res points to.
+ *
+ * @retval 0 - Upon successful execution
+ */
+int clock_getres( clockid_t clock_id,
+ struct timespec * res );
+
+/**
+ * @brief Returns the current value for the specified clock, clock_id.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_gettime.html
+ *
+ * @note clock_id is ignored
+ * @note this function does not check for overflows of time_t.
+ *
+ * @retval 0 - Upon successful completion.
+ */
+int clock_gettime( clockid_t clock_id,
+ struct timespec * tp );
+
+/**
+ * @brief High resolution sleep with specifiable clock.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_nanosleep.html
+ *
+ * @note clock_id is ignored, as this function uses the FreeRTOS tick count as its clock.
+ * @note flags is ignored, if INCLUDE_vTaskDelayUntil is 0. i.e. the FreeRTOS function vTaskDelayUntil isn't available.
+ * @note rmtp is also ignored, as signals are not implemented.
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval EINVAL - The rqtp argument specified a nanosecond value less than zero or greater than or equal to 1000 million.
+ */
+int clock_nanosleep( clockid_t clock_id,
+ int flags,
+ const struct timespec * rqtp,
+ struct timespec * rmtp );
+
+/**
+ * @brief Sets the time for the specified clock.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_settime.html
+ *
+ * @retval -1 with errno set to EPERM.
+ *
+ * @note This function is currently unsupported, as FreeRTOS does not provide a function to modify the tick count.
+ */
+int clock_settime( clockid_t clock_id,
+ const struct timespec * tp );
+
+/**
+ * @brief High resolution sleep.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/nanosleep.html
+ *
+ * @note rmtp is ignored, as signals are not implemented.
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval -1 - The rqtp argument is invalid OR the rqtp argument specified a nanosecond value less than zero or greater than or equal to 1000 million.
+ *
+ */
+int nanosleep( const struct timespec * rqtp,
+ struct timespec * rmtp );
+
+/**
+ * @brief Create a per-process timer.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/timer_create.html
+ *
+ * @note clock_id is ignored, as this function used the FreeRTOS tick count as its clock.
+ * @note evp.sigev_notify must be set to SIGEV_THREAD, since signals are currently not supported.
+ *
+ * @retval 0 - Upon successful completion, with location referenced by timerid updated.
+ * @retval -1 - If an error occurs. errno is also set.
+ *
+ * @sideeffect Possible errno values
+ *
+ * ENOTSUP - If evp is NULL OR evp->sigen_notify == SIGEV_SIGNAL.
+ *
+ * EAGAIN - The system lacks sufficient signal queuing resources to honor the request.
+ */
+int timer_create( clockid_t clockid,
+ struct sigevent * evp,
+ timer_t * timerid );
+
+/**
+ * @brief Delete a per-process timer.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/timer_delete.html
+ *
+ * @retval 0 - Upon successful completion.
+ */
+int timer_delete( timer_t timerid );
+
+/**
+ * @brief Get the timer overrun count.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/timer_getoverrun.html
+ *
+ * @retval 0 - Always return 0, since signals are not supported.
+ */
+int timer_getoverrun( timer_t timerid );
+
+/**
+ * @brief Get the amount of time until the timer expires.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/timer_gettime.html
+ *
+ * @retval 0 - Upon successful completion.
+ */
+int timer_gettime( timer_t timerid,
+ struct itimerspec * value );
+
+/**
+ * @brief Set the time until the next expiration of the timer.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/timer_settime.html
+ *
+ * @retval 0 - Upon successful completion.
+ * @retval -1 - An error occurred, errno is also set.
+ *
+ * @sideeffect Possible errno values
+ *
+ * EINVAL - A value structure specified a nanosecond value less than zero or greater than or equal to 1000 million,
+ * AND the it_value member of that structure did not specify zero seconds and nanoseconds.
+ */
+int timer_settime( timer_t timerid,
+ int flags,
+ const struct itimerspec * value,
+ struct itimerspec * ovalue );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef _FREERTOS_POSIX_TIME_H_ */
diff --git a/third-party/freertos/posix/include/FreeRTOS_POSIX/unistd.h b/third-party/freertos/posix/include/FreeRTOS_POSIX/unistd.h
new file mode 100644
index 0000000000000000000000000000000000000000..a70a14509f31e2403d94c1a3337617313bc8aa02
--- /dev/null
+++ b/third-party/freertos/posix/include/FreeRTOS_POSIX/unistd.h
@@ -0,0 +1,69 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file unistd.h
+ * @brief Standard symbolic constants and types
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/unistd.h.html
+ */
+
+#ifndef _FREERTOS_POSIX_UNISTD_H_
+#define _FREERTOS_POSIX_UNISTD_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "FreeRTOS_POSIX/sys/types.h"
+
+/**
+ * @brief Suspend execution for an interval of time.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/sleep.html
+ *
+ * @param[in] seconds The number of seconds to suspend execution.
+ *
+ * @retval 0 - Upon successful completion.
+ *
+ * @note Return value of a positive number is not yet supported.
+ */
+unsigned sleep( unsigned seconds );
+
+/**
+ * @brief Suspend execution for microsecond intervals.
+ *
+ * This is a useful, non-POSIX function.
+ * @param[in] usec The number of microseconds to suspend execution.
+ *
+ * @retval 0 - Upon successful completion.
+ */
+int usleep( useconds_t usec );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef _FREERTOS_POSIX_UNISTD_H_ */
diff --git a/third-party/freertos/posix/include/FreeRTOS_POSIX/utils.h b/third-party/freertos/posix/include/FreeRTOS_POSIX/utils.h
new file mode 100644
index 0000000000000000000000000000000000000000..60306e6a3c622769867698d499d9430ab4afe0a4
--- /dev/null
+++ b/third-party/freertos/posix/include/FreeRTOS_POSIX/utils.h
@@ -0,0 +1,163 @@
+/*
+ * Amazon FreeRTOS POSIX V1.1.0
+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file utils.h
+ * @brief Utility functions used by FreeRTOS+POSIX.
+ */
+
+#ifndef _FREERTOS_POSIX_UTILS_
+#define _FREERTOS_POSIX_UTILS_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* C standard library includes. */
+#include
+#include
+
+/* FreeRTOS+POSIX includes. */
+#include "FreeRTOS_POSIX/time.h"
+
+/**
+ * @brief Calculates the length of pcString, up to xMaxLength.
+ *
+ * @param[in] pcString The string to find the length of.
+ * @param[in] xMaxLength The limit when searching for the end of pcString.
+ *
+ * @return 0 if pcString is NULL; otherwise, the length of pcString or xMaxLength,
+ * whichever is smaller.
+ */
+size_t UTILS_strnlen( const char * const pcString,
+ size_t xMaxLength );
+
+/**
+ * @brief Calculates the number of ticks between now and a given timespec.
+ *
+ * @param[in] pxAbsoluteTime A time in the future, specified as seconds and
+ * nanoseconds since CLOCK_REALTIME's 0.
+ * @param[in] pxCurrentTime current time, specified as seconds and
+ * nanoseconds.
+ * @param[out] pxResult Where the result of the conversion is stored. The result
+ * is rounded up for fractional ticks.
+ *
+ * @return 0 on success. Otherwise, ETIMEDOUT if pxAbsoluteTime is in the past,
+ * or EINVAL for invalid parameters.
+ */
+int UTILS_AbsoluteTimespecToDeltaTicks( const struct timespec * const pxAbsoluteTime,
+ const struct timespec * const pxCurrentTime,
+ TickType_t * const pxResult );
+
+/**
+ * @brief Converts a struct timespec to FreeRTOS ticks.
+ *
+ * @param[in] pxTimespec The timespec to convert.
+ * @param[out] Where the result of the conversion is stored. The result is rounded
+ * up for fractional ticks.
+ *
+ * @return 0 on success. Otherwise, EINVAL for invalid parameters.
+ */
+int UTILS_TimespecToTicks( const struct timespec * const pxTimespec,
+ TickType_t * const pxResult );
+
+/**
+ * @brief Converts an integer value to a timespec.
+ *
+ * @param[in] llSource The value to convert.
+ * @param[out] pxDestination Where to store the converted value.
+ *
+ * @return No return value.
+ */
+void UTILS_NanosecondsToTimespec( int64_t llSource,
+ struct timespec * const pxDestination );
+
+/**
+ * @brief Calculates pxResult = x + y.
+ *
+ * @param[in] x The first argument for addition.
+ * @param[in] y The second argument for addition.
+ * @param[out] pxResult Where the result of the calculation is stored.
+ *
+ * @return -1 if any argument was NULL; 1 if result is negative (overflow); otherwise, 0.
+ */
+int UTILS_TimespecAdd( const struct timespec * const x,
+ const struct timespec * const y,
+ struct timespec * const pxResult );
+
+/**
+ * @brief Calculates pxResult = x + ( struct timespec ) nanosec.
+ *
+ * @param[in] x The first argument for addition.
+ * @param[in] llNanoseconds The second argument for addition.
+ * @param[out] pxResult Where the result of the calculation is stored.
+ *
+ * @return -1 if pxResult or x was NULL; 1 if result is negative; otherwise, 0.
+ */
+int UTILS_TimespecAddNanoseconds( const struct timespec * const x,
+ int64_t llNanoseconds,
+ struct timespec * const pxResult );
+
+/**
+ * @brief Calculates pxResult = x - y. If the result is negative contents of
+ * pResult are undefined
+ *
+ * @param[in] x The first argument for subtraction.
+ * @param[in] y The second argument for subtraction.
+ * @param[out] pxResult Where the result of the calculation is stored.
+ *
+ * @return -1 if any argument was NULL; 1 if result is negative; otherwise, 0.
+ */
+int UTILS_TimespecSubtract( const struct timespec * const x,
+ const struct timespec * const y,
+ struct timespec * const pxResult );
+
+/**
+ * @brief Compare x == y.
+ *
+ * @param[in] x The first argument for comparison.
+ * @param[in] y The second argument for comparison.
+ *
+ * @return 0 if x == y; 1 if x > y; -1 if x < y or any argument was NULL
+ */
+int UTILS_TimespecCompare( const struct timespec * const x,
+ const struct timespec * const y );
+
+/**
+ * @brief Checks that a timespec conforms to POSIX.
+ *
+ * A valid timespec must have 0 <= tv_nsec < 1000000000.
+ *
+ * @param[in] pxTimespec The timespec to validate.
+ *
+ * @return true if the pxTimespec is valid, false otherwise.
+ */
+bool UTILS_ValidateTimespec( const struct timespec * const pxTimespec );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef _FREERTOS_POSIX_UTILS_ */
diff --git a/third-party/freertos/posix/include/private/iot_doubly_linked_list.h b/third-party/freertos/posix/include/private/iot_doubly_linked_list.h
new file mode 100644
index 0000000000000000000000000000000000000000..338c539a62fc97be8ef123f62ec3e2b6d8b58155
--- /dev/null
+++ b/third-party/freertos/posix/include/private/iot_doubly_linked_list.h
@@ -0,0 +1,242 @@
+/*
+ * Amazon FreeRTOS Common V1.0.0
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://aws.amazon.com/freertos
+ * http://www.FreeRTOS.org
+ */
+
+/**
+ * @file iot_doubly_linked_list.h
+ * @brief Doubly Linked List implementation.
+ *
+ * A generic implementation of circular Doubly Linked List which consists of a
+ * list head and some list entries (zero in case of an empty list).
+ *
+ * To start with, a structure of type Link_t should be embedded in the structure
+ * which is to be organized as doubly linked list.
+ * @code
+ * typedef struct UserStruct
+ * {
+ * uint32_t ulField1;
+ * uint32_t ulField2;
+ * Link_t xLink;
+ * } UserStruct_t;
+ * @endcode
+ *
+ * A List head should then be defined and initialized.
+ * @code
+ * Link_t xListHead;
+ * listINIT_HEAD( &xListHead );
+ * @endcode
+ *
+ * listADD can then be used to add nodes to the list.
+ * @code
+ * listADD( &( xListHead ), &( pxUserStruct->xLink ) );
+ * @endcode
+ *
+ * listFOR_EACH can be used for traversing the list.
+ * @code
+ * Link_t *pxLink;
+ * UserStruct_t *pxUserStruct;
+ * listFOR_EACH( pxLink, &( xListHead ) )
+ * {
+ * pxUserStruct = listCONTAINER( pxLink, UserStruct_t, xLink );
+ * }
+ * @endcode
+ *
+ * listFOR_EACH_SAFE should be used if you want to perform destructive operations
+ * (like free) on nodes while traversing the list.
+ * @code
+ * Link_t *pxLink, *pxTempLink;
+ * UserStruct_t *pxUserStruct;
+ * listFOR_EACH( pxLink, pxTempLink, &( xListHead ) )
+ * {
+ * pxUserStruct = listCONTAINER( pxLink, UserStruct_t, xLink );
+ * free( pxUserStruct );
+ * }
+ * @endcode
+ */
+
+#ifndef _AWS_DOUBLY_LINKED_LIST_H_
+#define _AWS_DOUBLY_LINKED_LIST_H_
+
+#include
+#include
+
+/**
+ * @brief Struct embedded in any struct to make it a doubly linked
+ * list.
+ *
+ * pxNext in the head points to the first node in the list and pxPrev
+ * in the head points to the last node in the list. In case of empty
+ * list, both pxPrev and pxNext in the head point to the head node itself.
+ */
+typedef struct Link
+{
+ struct Link * pxPrev; /**< Pointer to the previous node. */
+ struct Link * pxNext; /**< Pointer to the next node. */
+} Link_t;
+
+/**
+ * @brief Initializes the given list head to an empty list.
+ *
+ * @param[in] pxHead The given list head to initialize.
+ */
+#define listINIT_HEAD( pxHead ) \
+ { \
+ ( pxHead )->pxPrev = ( pxHead ); \
+ ( pxHead )->pxNext = ( pxHead ); \
+ }
+
+/**
+ * @brief Adds the given new node to the given list.
+ *
+ * @param[in] pxHead The head of the given list.
+ * @param[in] pxLink The given new node to be added to the given
+ * list.
+ */
+#define listADD( pxHead, pxLink ) \
+ { \
+ Link_t * pxPrevLink = ( pxHead ); \
+ Link_t * pxNextLink = ( ( pxHead )->pxNext ); \
+ \
+ ( pxLink )->pxNext = pxNextLink; \
+ pxNextLink->pxPrev = ( pxLink ); \
+ pxPrevLink->pxNext = ( pxLink ); \
+ ( pxLink )->pxPrev = ( pxPrevLink ); \
+ }
+
+/**
+ * @brief Removes the given node from the list it is part of.
+ *
+ * If the given node is not a part of any list (i.e. next and previous
+ * nodes are NULL), nothing happens.
+ *
+ * @param[in] pxLink The given node to remove from the list.
+ */
+#define listREMOVE( pxLink ) \
+ { \
+ /* If the link is part of a list, remove it from the list. */ \
+ if( ( pxLink )->pxNext != NULL && ( pxLink )->pxPrev != NULL ) \
+ { \
+ ( pxLink )->pxPrev->pxNext = ( pxLink )->pxNext; \
+ ( pxLink )->pxNext->pxPrev = ( pxLink )->pxPrev; \
+ } \
+ \
+ /* Make sure that this link is not part of any list anymore. */ \
+ ( pxLink )->pxPrev = NULL; \
+ ( pxLink )->pxNext = NULL; \
+ }
+
+/**
+ * @brief Given the head of a list, checks if the list is empty.
+ *
+ * @param[in] pxHead The head of the given list.
+ */
+#define listIS_EMPTY( pxHead ) ( ( ( pxHead ) == NULL ) || ( ( pxHead )->pxNext == ( pxHead ) ) )
+
+/**
+ * @brief Removes the first node from the given list and returns it.
+ *
+ * Removes the first node from the given list and assigns it to the
+ * pxLink parameter. If the list is empty, it assigns NULL to the
+ * pxLink.
+ *
+ * @param[in] pxHead The head of the list from which to remove the
+ * first node.
+ * @param[out] pxLink The output parameter to receive the removed
+ * node.
+ */
+#define listPOP( pxHead, pxLink ) \
+ { \
+ if( listIS_EMPTY( ( pxHead ) ) ) \
+ { \
+ ( pxLink ) = NULL; \
+ } \
+ else \
+ { \
+ ( pxLink ) = ( pxHead )->pxNext; \
+ /* If the link is part of a list, remove it from the list. */ \
+ if( ( pxLink )->pxNext != NULL && ( pxLink )->pxPrev != NULL ) \
+ { \
+ ( pxLink )->pxPrev->pxNext = ( pxLink )->pxNext; \
+ ( pxLink )->pxNext->pxPrev = ( pxLink )->pxPrev; \
+ } \
+ \
+ /* Make sure that this link is not part of any list anymore. */ \
+ ( pxLink )->pxPrev = NULL; \
+ ( pxLink )->pxNext = NULL; \
+ } \
+ }
+
+/**
+ * @brief Merges a list into a given list.
+ *
+ * @param[in] pxHeadResultList The head of the given list into which the
+ * other list should be merged.
+ * @param[in] pxHeadListToMerge The head of the list to be merged into the
+ * given list.
+ */
+#define listMERGE( pxHeadResultList, pxHeadListToMerge ) \
+ { \
+ if( !listIS_EMPTY( ( pxHeadListToMerge ) ) ) \
+ { \
+ /* Setup links between last node of listToMerge and first node of resultList. */ \
+ ( pxHeadListToMerge )->pxPrev->pxNext = ( pxHeadResultList )->pxNext; \
+ ( pxHeadResultList )->pxNext->pxPrev = ( pxHeadListToMerge )->pxPrev; \
+ \
+ /* Setup links between first node of listToMerge and the head of resultList. */ \
+ ( pxHeadListToMerge )->pxNext->pxPrev = ( pxHeadResultList ); \
+ ( pxHeadResultList )->pxNext = ( pxHeadListToMerge )->pxNext; \
+ /* Empty the merged list. */ \
+ listINIT_HEAD( ( pxHeadListToMerge ) ); \
+ } \
+ }
+
+/**
+ * @brief Helper macro to iterate over a list. pxLink contains the link node
+ * in each iteration.
+ */
+#define listFOR_EACH( pxLink, pxHead ) \
+ for( ( pxLink ) = ( pxHead )->pxNext; \
+ ( pxLink ) != ( pxHead ); \
+ ( pxLink ) = ( pxLink )->pxNext )
+
+/**
+ * @brief Helper macro to iterate over a list. It is safe to destroy/free the
+ * nodes while iterating. pxLink contains the link node in each iteration.
+ */
+#define listFOR_EACH_SAFE( pxLink, pxTempLink, pxHead ) \
+ for( ( pxLink ) = ( pxHead )->pxNext, ( pxTempLink ) = ( pxLink )->pxNext; \
+ ( pxLink ) != ( pxHead ); \
+ ( pxLink ) = ( pxTempLink ), ( pxTempLink ) = ( pxLink )->pxNext )
+
+/**
+ * @brief Given the pointer to the link member (of type Link_t) in a struct,
+ * extracts the pointer to the containing struct.
+ *
+ * @param[in] pxLink The pointer to the link member.
+ * @param[in] type The type of the containing struct.
+ * @param[in] member Name of the link member in the containing struct.
+ */
+#define listCONTAINER( pxLink, type, member ) ( ( type * ) ( ( uint8_t * ) ( pxLink ) - ( uint8_t * ) ( &( ( type * ) 0 )->member ) ) )
+
+#endif /* _AWS_DOUBLY_LINKED_LIST_H_ */
diff --git a/third-party/freertos/src.mk b/third-party/freertos/src.mk
index d855b3888ec518d0cf81b6905f72d22dc88dc09c..6658ea9f792ae409f614357dc5485e40fc75786e 100644
--- a/third-party/freertos/src.mk
+++ b/third-party/freertos/src.mk
@@ -6,6 +6,9 @@ CSRCS_RELATIVE_FILES += $(wildcard *.c)
CSRCS_RELATIVE_FILES += $(wildcard portable/MemMang/heap_4.c)
CSRCS_RELATIVE_FILES += $(wildcard portable/*.c)
+ifdef CONFIG_FREERTOS_USE_POSIX
+CSRCS_RELATIVE_FILES += $(wildcard posix/FreeRTOS-Plus-POSIX/source/*.c)
+endif
ifdef CONFIG_TARGET_ARMV8_AARCH64
CSRCS_RELATIVE_FILES += $(wildcard portable/GCC/ft_platform/aarch64/*.c)
diff --git a/third-party/fsl_sdmmc/COPYING-BSD-3 b/third-party/fsl_sdmmc/COPYING-BSD-3
new file mode 100644
index 0000000000000000000000000000000000000000..de461d9586c7c91adce50f8d3743ad5008d9a6e0
--- /dev/null
+++ b/third-party/fsl_sdmmc/COPYING-BSD-3
@@ -0,0 +1,33 @@
+The BSD 3 Clause License
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors
+may be used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/third-party/fsl_sdmmc/fsl_sdmmc.kconfig b/third-party/fsl_sdmmc/fsl_sdmmc.kconfig
new file mode 100644
index 0000000000000000000000000000000000000000..623205e16e38fc1ecceb144e1bcca0b4cf06b505
--- /dev/null
+++ b/third-party/fsl_sdmmc/fsl_sdmmc.kconfig
@@ -0,0 +1 @@
+source "$(SDK_DIR)/third-party/fsl_sdmmc/fsl_sdmmc.kconfig"
\ No newline at end of file
diff --git a/third-party/fsl_sdmmc/include.mk b/third-party/fsl_sdmmc/include.mk
new file mode 100644
index 0000000000000000000000000000000000000000..1885db3b0293e4cb5c94d23f07b4e5ec18f1aa44
--- /dev/null
+++ b/third-party/fsl_sdmmc/include.mk
@@ -0,0 +1,29 @@
+ifdef CONFIG_USE_FSL_SDMMC
+FSL_SDMMC_OS_DIR := $(FREERTOS_SDK_DIR)/third-party/fsl_sdmmc
+FSL_SDMMC_BM_DIR := $(SDK_DIR)/third-party/fsl_sdmmc
+
+BUILD_INC_PATH_DIR += $(FSL_SDMMC_BM_DIR)/common \
+ $(FSL_SDMMC_BM_DIR)/host \
+ $(FSL_SDMMC_BM_DIR)/partition
+
+ifdef CONFIG_USE_FREERTOS
+BUILD_INC_PATH_DIR += $(FSL_SDMMC_OS_DIR)/osa
+endif
+
+ifdef CONFIG_FSL_SDMMC_ENABLE_SD
+BUILD_INC_PATH_DIR += $(FSL_SDMMC_BM_DIR)/sd
+endif
+
+ifdef CONFIG_FSL_SDMMC_ENABLE_MMC
+BUILD_INC_PATH_DIR += $(FSL_SDMMC_BM_DIR)/mmc
+endif
+
+ifdef CONFIG_FSL_SDMMC_ENABLE_SDIO
+BUILD_INC_PATH_DIR += $(FSL_SDMMC_BM_DIR)/sdio
+endif
+
+ifdef CONFIG_FSL_SDMMC_ENABLE_SD_SPI
+BUILD_INC_PATH_DIR += $(FSL_SDMMC_BM_DIR)/sdspi
+endif
+
+endif
\ No newline at end of file
diff --git a/third-party/sdmmc-1.0/makefile b/third-party/fsl_sdmmc/makefile
similarity index 80%
rename from third-party/sdmmc-1.0/makefile
rename to third-party/fsl_sdmmc/makefile
index f255906bfd32b7c8d19543fcc786baba80f0f7d4..640fc6a16209d4399b04f803ae06b5eacc1656c3 100644
--- a/third-party/sdmmc-1.0/makefile
+++ b/third-party/fsl_sdmmc/makefile
@@ -1,7 +1,7 @@
-
-
include $(PROJECT_DIR)/sdkconfig
include src.mk
+#LIBS_NAME ?= libsdmmc
+
include $(SDK_DIR)/tools/build/compiler.mk
\ No newline at end of file
diff --git a/third-party/fsl_sdmmc/osa/fsl_os_abstraction.h b/third-party/fsl_sdmmc/osa/fsl_os_abstraction.h
new file mode 100644
index 0000000000000000000000000000000000000000..1baece32b81c96db21ffef6422faa403f8cfac49
--- /dev/null
+++ b/third-party/fsl_sdmmc/osa/fsl_os_abstraction.h
@@ -0,0 +1,1005 @@
+/*
+ * Copyright (c) 2015, Freescale Semiconductor, Inc.
+ * Copyright 2016-2020 NXP
+ *
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef _FSL_OS_ABSTRACTION_H_
+#define _FSL_OS_ABSTRACTION_H_
+
+#ifndef SDK_COMPONENT_DEPENDENCY_FSL_COMMON
+#define SDK_COMPONENT_DEPENDENCY_FSL_COMMON (1U)
+#endif
+#if (defined(SDK_COMPONENT_DEPENDENCY_FSL_COMMON) && (SDK_COMPONENT_DEPENDENCY_FSL_COMMON > 0U))
+#include "fsl_common.h"
+#else
+#endif
+
+#include "fsl_os_abstraction_config.h"
+#include "fsl_component_generic_list.h"
+
+/*!
+ * @addtogroup osa_adapter
+ * @{
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+/*! @brief Type for the Task Priority*/
+typedef uint16_t osa_task_priority_t;
+/*! @brief Type for a task handler */
+typedef void *osa_task_handle_t;
+/*! @brief Type for the parameter to be passed to the task at its creation */
+typedef void *osa_task_param_t;
+/*! @brief Type for task pointer. Task prototype declaration */
+typedef void (*osa_task_ptr_t)(osa_task_param_t task_param);
+/*! @brief Type for the semaphore handler */
+typedef void *osa_semaphore_handle_t;
+/*! @brief Type for the mutex handler */
+typedef void *osa_mutex_handle_t;
+/*! @brief Type for the event handler */
+typedef void *osa_event_handle_t;
+/*! @brief Type for an event flags group, bit 32 is reserved. */
+typedef uint32_t osa_event_flags_t;
+/*! @brief Message definition. */
+typedef void *osa_msg_handle_t;
+/*! @brief Type for the message queue handler */
+typedef void *osa_msgq_handle_t;
+/*! @brief Type for the Timer handler */
+typedef void *osa_timer_handle_t;
+/*! @brief Type for the Timer callback function pointer. */
+typedef void (*osa_timer_fct_ptr_t)(void const *argument);
+/*! @brief Thread Definition structure contains startup information of a thread.*/
+typedef struct osa_task_def_tag
+{
+ osa_task_ptr_t pthread; /*!< start address of thread function*/
+ uint32_t tpriority; /*!< initial thread priority*/
+ uint32_t instances; /*!< maximum number of instances of that thread function*/
+ uint32_t stacksize; /*!< stack size requirements in bytes; 0 is default stack size*/
+ uint32_t *tstack; /*!< stack pointer*/
+ void *tlink; /*!< link pointer*/
+ uint8_t *tname; /*!< name pointer*/
+ uint8_t useFloat; /*!< is use float*/
+} osa_task_def_t;
+/*! @brief Thread Link Definition structure .*/
+typedef struct osa_thread_link_tag
+{
+ uint8_t link[12]; /*!< link*/
+ osa_task_handle_t osThreadId; /*!< thread id*/
+ osa_task_def_t *osThreadDefHandle; /*!< pointer of thread define handle*/
+ uint32_t *osThreadStackHandle; /*!< pointer of thread stack handle*/
+} osa_thread_link_t, *osa_thread_link_handle_t;
+
+/*! @brief Definition structure contains timer parameters.*/
+typedef struct osa_time_def_tag
+{
+ osa_timer_fct_ptr_t pfCallback; /* < start address of a timer function */
+ void *argument; /* < argument of a timer function */
+} osa_time_def_t;
+
+/*! @brief Type for the timer definition*/
+typedef enum _osa_timer
+{
+ KOSA_TimerOnce = 0, /*!< one-shot timer*/
+ KOSA_TimerPeriodic = 1 /*!< repeating timer*/
+} osa_timer_t;
+
+/*! @brief Defines the return status of OSA's functions */
+#if (defined(SDK_COMPONENT_DEPENDENCY_FSL_COMMON) && (SDK_COMPONENT_DEPENDENCY_FSL_COMMON > 0U))
+typedef enum _osa_status
+{
+ KOSA_StatusSuccess = kStatus_Success, /*!< Success */
+ KOSA_StatusError = MAKE_STATUS(kStatusGroup_OSA, 1), /*!< Failed */
+ KOSA_StatusTimeout = MAKE_STATUS(kStatusGroup_OSA, 2), /*!< Timeout occurs while waiting */
+ KOSA_StatusIdle = MAKE_STATUS(kStatusGroup_OSA, 3), /*!< Used for bare metal only, the wait object is not ready
+ and timeout still not occur */
+} osa_status_t;
+#else
+typedef enum _osa_status
+{
+ KOSA_StatusSuccess = 0, /*!< Success */
+ KOSA_StatusError = 1, /*!< Failed */
+ KOSA_StatusTimeout = 2, /*!< Timeout occurs while waiting */
+ KOSA_StatusIdle = 3, /*!< Used for bare metal only, the wait object is not ready
+ and timeout still not occur */
+} osa_status_t;
+
+#endif
+
+#ifdef USE_RTOS
+#undef USE_RTOS
+#endif
+
+#if defined(SDK_OS_MQX)
+#define USE_RTOS (1)
+#elif defined(SDK_OS_FREE_RTOS)
+#define USE_RTOS (1)
+#if (defined(GENERIC_LIST_LIGHT) && (GENERIC_LIST_LIGHT > 0U))
+#define OSA_TASK_HANDLE_SIZE (12U)
+#else
+#define OSA_TASK_HANDLE_SIZE (16U)
+#endif
+#define OSA_EVENT_HANDLE_SIZE (8U)
+
+#define OSA_SEM_HANDLE_SIZE (sizeof(void *))
+#define OSA_MUTEX_HANDLE_SIZE (sizeof(void *))
+#define OSA_MSGQ_HANDLE_SIZE (sizeof(void *))
+
+#define OSA_MSG_HANDLE_SIZE (0U)
+#elif defined(SDK_OS_UCOSII)
+#define USE_RTOS (1)
+#elif defined(SDK_OS_UCOSIII)
+#define USE_RTOS (1)
+#elif defined(FSL_RTOS_THREADX)
+#define USE_RTOS (1)
+#else
+#define USE_RTOS (0)
+#if (defined(GENERIC_LIST_LIGHT) && (GENERIC_LIST_LIGHT > 0U))
+#define OSA_TASK_HANDLE_SIZE (24U)
+#else
+#define OSA_TASK_HANDLE_SIZE (28U)
+#endif
+#if (defined(FSL_OSA_TASK_ENABLE) && (FSL_OSA_TASK_ENABLE > 0U))
+#define OSA_EVENT_HANDLE_SIZE (20U)
+#else
+#define OSA_EVENT_HANDLE_SIZE (16U)
+#endif /* FSL_OSA_TASK_ENABLE */
+#if (defined(FSL_OSA_BM_TIMEOUT_ENABLE) && (FSL_OSA_BM_TIMEOUT_ENABLE > 0U))
+#define OSA_SEM_HANDLE_SIZE (16U)
+#define OSA_MUTEX_HANDLE_SIZE (12U)
+#else
+#define OSA_SEM_HANDLE_SIZE (8U)
+#define OSA_MUTEX_HANDLE_SIZE (4U)
+#endif
+#if (defined(FSL_OSA_TASK_ENABLE) && (FSL_OSA_TASK_ENABLE > 0U))
+#define OSA_MSGQ_HANDLE_SIZE (32U)
+#else
+#define OSA_MSGQ_HANDLE_SIZE (28U)
+#endif /* FSL_OSA_TASK_ENABLE */
+#define OSA_MSG_HANDLE_SIZE (4U)
+#endif
+
+/*! @brief Priority setting for OSA. */
+#ifndef OSA_PRIORITY_IDLE
+#define OSA_PRIORITY_IDLE (6U)
+#endif
+
+#ifndef OSA_PRIORITY_LOW
+#define OSA_PRIORITY_LOW (5U)
+#endif
+
+#ifndef OSA_PRIORITY_BELOW_NORMAL
+#define OSA_PRIORITY_BELOW_NORMAL (4U)
+#endif
+
+#ifndef OSA_PRIORITY_NORMAL
+#define OSA_PRIORITY_NORMAL (3U)
+#endif
+
+#ifndef OSA_PRIORITY_ABOVE_NORMAL
+#define OSA_PRIORITY_ABOVE_NORMAL (2U)
+#endif
+
+#ifndef OSA_PRIORITY_HIGH
+#define OSA_PRIORITY_HIGH (1U)
+#endif
+
+#ifndef OSA_PRIORITY_REAL_TIME
+#define OSA_PRIORITY_REAL_TIME (0U)
+#endif
+
+#ifndef OSA_TASK_PRIORITY_MAX
+#define OSA_TASK_PRIORITY_MAX (0U)
+#endif
+
+#ifndef OSA_TASK_PRIORITY_MIN
+#define OSA_TASK_PRIORITY_MIN (15U)
+#endif
+
+/*
+ * Converse the percent of the priority to the priority of the OSA.
+ * The the range of the parameter x is 0-100.
+ */
+#define OSA_TASK_PRIORITY_PERCENT(x) ((((OSA_TASK_PRIORITY_MIN - OSA_TASK_PRIORITY_MAX) * (100 - (x))) / 100 ) + OSA_TASK_PRIORITY_MAX)
+
+#define SIZE_IN_UINT32_UNITS(size) (((size) + sizeof(uint32_t) - 1) / sizeof(uint32_t))
+
+/*! @brief Constant to pass as timeout value in order to wait indefinitely. */
+#define osaWaitNone_c ((uint32_t)(0))
+#define osaWaitForever_c ((uint32_t)(-1))
+#define osaEventFlagsAll_c ((osa_event_flags_t)(0x00FFFFFF))
+#define osThreadStackArray(name) osThread_##name##_stack
+#define osThreadStackDef(name, stacksize, instances) \
+ const uint32_t osThreadStackArray(name)[SIZE_IN_UINT32_UNITS(stacksize) * (instances)];
+
+/* ==== Thread Management ==== */
+
+/* Create a Thread Definition with function, priority, and stack requirements.
+ * \param name name of the thread function.
+ * \param priority initial priority of the thread function.
+ * \param instances number of possible thread instances.
+ * \param stackSz stack size (in bytes) requirements for the thread function.
+ * \param useFloat
+ */
+#if defined(SDK_OS_MQX)
+#define OSA_TASK_DEFINE(name, priority, instances, stackSz, useFloat) \
+ osa_thread_link_t osThreadLink_##name[instances] = {0}; \
+ osThreadStackDef(name, stackSz, instances) osa_task_def_t os_thread_def_##name = { \
+ (name), (priority), (instances), (stackSz), osThreadStackArray(name), osThreadLink_##name, \
+ (uint8_t *)#name, (useFloat)}
+#elif defined(SDK_OS_UCOSII)
+#if gTaskMultipleInstancesManagement_c
+#define OSA_TASK_DEFINE(name, priority, instances, stackSz, useFloat) \
+ osa_thread_link_t osThreadLink_##name[instances] = {0}; \
+ osThreadStackDef(name, stackSz, instances) osa_task_def_t os_thread_def_##name = { \
+ (name), (priority), (instances), (stackSz), osThreadStackArray(name), osThreadLink_##name, \
+ (uint8_t *)#name, (useFloat)}
+#else
+#define OSA_TASK_DEFINE(name, priority, instances, stackSz, useFloat) \
+ osThreadStackDef(name, stackSz, instances) osa_task_def_t os_thread_def_##name = { \
+ (name), (priority), (instances), (stackSz), osThreadStackArray(name), NULL, (uint8_t *)#name, (useFloat)}
+#endif
+#elif defined(FSL_RTOS_THREADX)
+#define OSA_TASK_DEFINE(name, priority, instances, stackSz, useFloat) \
+ uint32_t s_stackBuffer##name[(stackSz + sizeof(uint32_t) - 1U) / sizeof(uint32_t)]; \
+ static const osa_task_def_t os_thread_def_##name = { \
+ (name), (priority), (instances), (stackSz), s_stackBuffer##name, NULL, (uint8_t *)#name, (useFloat)}
+#else
+#define OSA_TASK_DEFINE(name, priority, instances, stackSz, useFloat) \
+ const osa_task_def_t os_thread_def_##name = {(name), (priority), (instances), (stackSz), \
+ NULL, NULL, (uint8_t *)#name, (useFloat)}
+#endif
+/* Access a Thread defintion.
+ * \param name name of the thread definition object.
+ */
+#define OSA_TASK(name) (const osa_task_def_t *)&os_thread_def_##name
+
+#define OSA_TASK_PROTO(name) extern osa_task_def_t os_thread_def_##name
+/* ==== Timer Management ====
+ * Define a Timer object.
+ * \param name name of the timer object.
+ * \param function name of the timer call back function.
+ */
+
+#define OSA_TIMER_DEF(name, function) osa_time_def_t os_timer_def_##name = {(function), NULL}
+
+/* Access a Timer definition.
+ * \param name name of the timer object.
+ */
+#define OSA_TIMER(name) &os_timer_def_##name
+
+/* ==== Buffer Definition ==== */
+
+/*!
+ * @brief Defines the semaphore handle
+ *
+ * This macro is used to define a 4 byte aligned semaphore handle.
+ * Then use "(osa_semaphore_handle_t)name" to get the semaphore handle.
+ *
+ * The macro should be global and could be optional. You could also define semaphore handle by yourself.
+ *
+ * This is an example,
+ * @code
+ * OSA_SEMAPHORE_HANDLE_DEFINE(semaphoreHandle);
+ * @endcode
+ *
+ * @param name The name string of the semaphore handle.
+ */
+#define OSA_SEMAPHORE_HANDLE_DEFINE(name) \
+ uint32_t name[(OSA_SEM_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t)]
+
+/*!
+ * @brief Defines the mutex handle
+ *
+ * This macro is used to define a 4 byte aligned mutex handle.
+ * Then use "(osa_mutex_handle_t)name" to get the mutex handle.
+ *
+ * The macro should be global and could be optional. You could also define mutex handle by yourself.
+ *
+ * This is an example,
+ * @code
+ * OSA_MUTEX_HANDLE_DEFINE(mutexHandle);
+ * @endcode
+ *
+ * @param name The name string of the mutex handle.
+ */
+#define OSA_MUTEX_HANDLE_DEFINE(name) uint32_t name[(OSA_MUTEX_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t)]
+
+/*!
+ * @brief Defines the event handle
+ *
+ * This macro is used to define a 4 byte aligned event handle.
+ * Then use "(osa_event_handle_t)name" to get the event handle.
+ *
+ * The macro should be global and could be optional. You could also define event handle by yourself.
+ *
+ * This is an example,
+ * @code
+ * OSA_EVENT_HANDLE_DEFINE(eventHandle);
+ * @endcode
+ *
+ * @param name The name string of the event handle.
+ */
+#define OSA_EVENT_HANDLE_DEFINE(name) uint32_t name[(OSA_EVENT_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t)]
+
+/*!
+ * @brief Defines the message queue handle
+ *
+ * This macro is used to define a 4 byte aligned message queue handle.
+ * Then use "(osa_msgq_handle_t)name" to get the message queue handle.
+ *
+ * The macro should be global and could be optional. You could also define message queue handle by yourself.
+ *
+ * This is an example,
+ * @code
+ * OSA_MSGQ_HANDLE_DEFINE(msgqHandle, 3, sizeof(msgStruct));
+ * @endcode
+ *
+ * @param name The name string of the message queue handle.
+ * @param numberOfMsgs Number of messages.
+ * @param msgSize Message size.
+ *
+ */
+#if defined(SDK_OS_FREE_RTOS)
+/*< Macro For FREE_RTOS*/
+#define OSA_MSGQ_HANDLE_DEFINE(name, numberOfMsgs, msgSize) \
+ uint32_t name[(OSA_MSGQ_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t)]
+#else
+/*< Macro For BARE_MATEL*/
+#define OSA_MSGQ_HANDLE_DEFINE(name, numberOfMsgs, msgSize) \
+ uint32_t name[((OSA_MSGQ_HANDLE_SIZE + numberOfMsgs * msgSize) + sizeof(uint32_t) - 1U) / sizeof(uint32_t)]
+#endif
+
+/*!
+ * @brief Defines the TASK handle
+ *
+ * This macro is used to define a 4 byte aligned TASK handle.
+ * Then use "(osa_task_handle_t)name" to get the TASK handle.
+ *
+ * The macro should be global and could be optional. You could also define TASK handle by yourself.
+ *
+ * This is an example,
+ * @code
+ * OSA_TASK_HANDLE_DEFINE(taskHandle);
+ * @endcode
+ *
+ * @param name The name string of the TASK handle.
+ */
+#define OSA_TASK_HANDLE_DEFINE(name) uint32_t name[(OSA_TASK_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t)]
+
+#if defined(SDK_OS_FREE_RTOS)
+#include "fsl_os_abstraction_free_rtos.h"
+#elif defined(FSL_RTOS_THREADX)
+#include "fsl_os_abstraction_threadx.h"
+#else
+#include "fsl_os_abstraction_bm.h"
+#endif
+
+extern const uint8_t gUseRtos_c;
+
+#ifndef __DSB
+#define __DSB()
+#endif
+/*
+ * alloc the temporary memory to store the status
+ */
+#define OSA_SR_ALLOC() uint32_t osaCurrentSr = 0U;
+/*
+ * Enter critical mode
+ */
+#define OSA_ENTER_CRITICAL() OSA_EnterCritical(&osaCurrentSr)
+/*
+ * Exit critical mode and retore the previous mode
+ */
+#define OSA_EXIT_CRITICAL() \
+ __DSB(); \
+ OSA_ExitCritical(osaCurrentSr);
+
+/*******************************************************************************
+ * API
+ ******************************************************************************/
+
+/*!
+ * @brief Reserves the requested amount of memory in bytes.
+ *
+ * The function is used to reserve the requested amount of memory in bytes and initializes it to 0.
+ *
+ * @param length Amount of bytes to reserve.
+ *
+ * @return Pointer to the reserved memory. NULL if memory can't be allocated.
+ */
+void *OSA_MemoryAllocate(uint32_t length);
+
+/*!
+ * @brief Frees the memory previously reserved.
+ *
+ * The function is used to free the memory block previously reserved.
+ *
+ * @param p Pointer to the start of the memory block previously reserved.
+ *
+ */
+void OSA_MemoryFree(void *p);
+
+/*!
+ * @brief Enter critical with nesting mode.
+ *
+ * @param sr Store current status and return to caller.
+ */
+void OSA_EnterCritical(uint32_t *sr);
+
+/*!
+ * @brief Exit critical with nesting mode.
+ *
+ * @param sr Previous status to restore.
+ */
+void OSA_ExitCritical(uint32_t sr);
+
+/*!
+ * @name Task management
+ * @{
+ */
+
+/*!
+ * @brief Initialize OSA.
+ *
+ * This function is used to setup the basic services.
+ *
+ * Example below shows how to use this API to create the task handle.
+ * @code
+ * OSA_Init();
+ * @endcode
+ */
+#if (defined(FSL_OSA_TASK_ENABLE) && (FSL_OSA_TASK_ENABLE > 0U))
+void OSA_Init(void);
+#endif
+
+/*!
+ * @brief Start OSA schedule.
+ *
+ * This function is used to start OSA scheduler.
+ *
+ * Example below shows how to use this API to start osa schedule.
+ * @code
+ * OSA_Start();
+ * @endcode
+ */
+#if (defined(FSL_OSA_TASK_ENABLE) && (FSL_OSA_TASK_ENABLE > 0U))
+void OSA_Start(void);
+#endif
+
+/*!
+ * @brief Creates a task.
+ *
+ * This function is used to create task based on the resources defined
+ * by the macro OSA_TASK_DEFINE.
+ *
+ * Example below shows how to use this API to create the task handle.
+ * @code
+ * OSA_TASK_HANDLE_DEFINE(taskHandle);
+ * OSA_TASK_DEFINE( Job1, OSA_PRIORITY_HIGH, 1, 800, 0);
+ * OSA_TaskCreate((osa_task_handle_t)taskHandle, OSA_TASK(Job1), (osa_task_param_t)NULL);
+ * @endcode
+ *
+ * @param taskHandle Pointer to a memory space of size OSA_TASK_HANDLE_SIZE allocated by the caller, task handle.
+ * The handle should be 4 byte aligned, because unaligned access doesn't be supported on some devices.
+ * You can define the handle in the following two ways:
+ * #OSA_TASK_HANDLE_DEFINE(taskHandle);
+ * or
+ * uint32_t taskHandle[((OSA_TASK_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t))];
+ * @param thread_def pointer to theosa_task_def_t structure which defines the task.
+ * @param task_param Pointer to be passed to the task when it is created.
+ * @retval KOSA_StatusSuccess The task is successfully created.
+ * @retval KOSA_StatusError The task can not be created.
+ */
+#if ((defined(FSL_OSA_TASK_ENABLE)) && (FSL_OSA_TASK_ENABLE > 0U))
+osa_status_t OSA_TaskCreate(osa_task_handle_t taskHandle,
+ const osa_task_def_t *thread_def,
+ osa_task_param_t task_param);
+#endif /* FSL_OSA_TASK_ENABLE */
+
+/*!
+ * @brief Gets the handler of active task.
+ *
+ * @return Handler to current active task.
+ */
+#if ((defined(FSL_OSA_TASK_ENABLE)) && (FSL_OSA_TASK_ENABLE > 0U))
+osa_task_handle_t OSA_TaskGetCurrentHandle(void);
+#endif /* FSL_OSA_TASK_ENABLE */
+
+/*!
+ * @brief Puts the active task to the end of scheduler's queue.
+ *
+ * When a task calls this function, it gives up the CPU and puts itself to the
+ * end of a task ready list.
+ *
+ * @retval NULL
+ */
+#if ((defined(FSL_OSA_TASK_ENABLE)) && (FSL_OSA_TASK_ENABLE > 0U))
+void OSA_TaskYield(void);
+#endif /* FSL_OSA_TASK_ENABLE */
+
+/*!
+ * @brief Gets the priority of a task.
+ *
+ * @param taskHandle The handler of the task whose priority is received.
+ *
+ * @return Task's priority.
+ */
+#if ((defined(FSL_OSA_TASK_ENABLE)) && (FSL_OSA_TASK_ENABLE > 0U))
+osa_task_priority_t OSA_TaskGetPriority(osa_task_handle_t taskHandle);
+#endif /* FSL_OSA_TASK_ENABLE */
+
+/*!
+ * @brief Sets the priority of a task.
+ *
+ * @param taskHandle The handler of the task whose priority is set.
+ * @param taskPriority The priority to set.
+ *
+ * @retval KOSA_StatusSuccess Task's priority is set successfully.
+ * @retval KOSA_StatusError Task's priority can not be set.
+ */
+#if ((defined(FSL_OSA_TASK_ENABLE)) && (FSL_OSA_TASK_ENABLE > 0U))
+osa_status_t OSA_TaskSetPriority(osa_task_handle_t taskHandle, osa_task_priority_t taskPriority);
+#endif /* FSL_OSA_TASK_ENABLE */
+
+/*!
+ * @brief Destroys a previously created task.
+ *
+ * @param taskHandle The handler of the task to destroy.
+ *
+ * @retval KOSA_StatusSuccess The task was successfully destroyed.
+ * @retval KOSA_StatusError Task destruction failed or invalid parameter.
+ */
+#if ((defined(FSL_OSA_TASK_ENABLE)) && (FSL_OSA_TASK_ENABLE > 0U))
+osa_status_t OSA_TaskDestroy(osa_task_handle_t taskHandle);
+#endif /* FSL_OSA_TASK_ENABLE */
+
+/*!
+ * @brief Pre-creates a semaphore.
+ *
+ * This function pre-creates a semaphore with the task handler.
+ *
+ * Example below shows how to use this API to create the semaphore handle.
+ * @code
+ * OSA_SEMAPHORE_HANDLE_DEFINE(semaphoreHandle);
+ * OSA_SemaphoreCreate((osa_semaphore_handle_t)semaphoreHandle, (osa_task_ptr_t)taskHandler);
+ * @endcode
+ *
+ * @param semaphoreHandle Pointer to a memory space of size OSA_SEM_HANDLE_SIZE allocated by the caller.
+ * The handle should be 4 byte aligned, because unaligned access doesn't be supported on some devices.
+ * You can define the handle in the following two ways:
+ * #OSA_SEMAPHORE_HANDLE_DEFINE(semaphoreHandle);
+ * or
+ * uint32_t semaphoreHandle[((OSA_SEM_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t))];
+ * @param taskHandler taskHandler The task handler this event is used by.
+ *
+ * @retval KOSA_StatusSuccess the new semaphore if the semaphore is created successfully.
+ */
+osa_status_t OSA_SemaphorePrecreate(osa_semaphore_handle_t semaphoreHandle, osa_task_ptr_t taskHandler);
+
+/*!
+ * @brief Creates a semaphore with a given value.
+ *
+ * This function creates a semaphore and sets the value to the parameter
+ * initValue.
+ *
+ * Example below shows how to use this API to create the semaphore handle.
+ * @code
+ * OSA_SEMAPHORE_HANDLE_DEFINE(semaphoreHandle);
+ * OSA_SemaphoreCreate((osa_semaphore_handle_t)semaphoreHandle, 0xff);
+ * @endcode
+ *
+ * @param semaphoreHandle Pointer to a memory space of size OSA_SEM_HANDLE_SIZE allocated by the caller.
+ * The handle should be 4 byte aligned, because unaligned access doesn't be supported on some devices.
+ * You can define the handle in the following two ways:
+ * #OSA_SEMAPHORE_HANDLE_DEFINE(semaphoreHandle);
+ * or
+ * uint32_t semaphoreHandle[((OSA_SEM_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t))];
+ * @param initValue Initial value the semaphore will be set to.
+ *
+ * @retval KOSA_StatusSuccess the new semaphore if the semaphore is created successfully.
+ * @retval KOSA_StatusError if the semaphore can not be created.
+ */
+osa_status_t OSA_SemaphoreCreate(osa_semaphore_handle_t semaphoreHandle, uint32_t initValue);
+
+/*!
+ * @brief Creates a binary semaphore.
+ *
+ * This function creates a binary semaphore
+ *
+ * Example below shows how to use this API to create the semaphore handle.
+ * @code
+ * OSA_SEMAPHORE_HANDLE_DEFINE(semaphoreHandle);
+ * OSA_SemaphoreCreateBinary((osa_semaphore_handle_t)semaphoreHandle);
+ * @endcode
+ *
+ * @param semaphoreHandle Pointer to a memory space of size OSA_SEM_HANDLE_SIZE allocated by the caller.
+ * The handle should be 4 byte aligned, because unaligned access doesn't be supported on some devices.
+ * You can define the handle in the following two ways:
+ * #OSA_SEMAPHORE_HANDLE_DEFINE(semaphoreHandle);
+ * or
+ * uint32_t semaphoreHandle[((OSA_SEM_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t))];
+ *
+ * @retval KOSA_StatusSuccess the new binary semaphore if the binary semaphore is created successfully.
+ * @retval KOSA_StatusError if the binary semaphore can not be created.
+ */
+osa_status_t OSA_SemaphoreCreateBinary(osa_semaphore_handle_t semaphoreHandle);
+
+/*!
+ * @brief Destroys a previously created semaphore.
+ *
+ * @param semaphoreHandle The semaphore handle.
+ * The macro SEMAPHORE_HANDLE_BUFFER_GET is used to get the semaphore buffer pointer,
+ * and should not be used before the macro SEMAPHORE_HANDLE_BUFFER_DEFINE is used.
+ *
+ * @retval KOSA_StatusSuccess The semaphore is successfully destroyed.
+ * @retval KOSA_StatusError The semaphore can not be destroyed.
+ */
+osa_status_t OSA_SemaphoreDestroy(osa_semaphore_handle_t semaphoreHandle);
+
+/*!
+ * @brief Pending a semaphore with timeout.
+ *
+ * This function checks the semaphore's counting value. If it is positive,
+ * decreases it and returns KOSA_StatusSuccess. Otherwise, a timeout is used
+ * to wait.
+ *
+ * @param semaphoreHandle The semaphore handle.
+ * @param millisec The maximum number of milliseconds to wait if semaphore is not
+ * positive. Pass osaWaitForever_c to wait indefinitely, pass 0
+ * will return KOSA_StatusTimeout immediately.
+ *
+ * @retval KOSA_StatusSuccess The semaphore is received.
+ * @retval KOSA_StatusTimeout The semaphore is not received within the specified 'timeout'.
+ * @retval KOSA_StatusError An incorrect parameter was passed.
+ */
+osa_status_t OSA_SemaphoreWait(osa_semaphore_handle_t semaphoreHandle, uint32_t millisec);
+
+/*!
+ * @brief Signals for someone waiting on the semaphore to wake up.
+ *
+ * Wakes up one task that is waiting on the semaphore. If no task is waiting, increases
+ * the semaphore's counting value.
+ *
+ * @param semaphoreHandle The semaphore handle to signal.
+ *
+ * @retval KOSA_StatusSuccess The semaphore is successfully signaled.
+ * @retval KOSA_StatusError The object can not be signaled or invalid parameter.
+ *
+ */
+osa_status_t OSA_SemaphorePost(osa_semaphore_handle_t semaphoreHandle);
+
+/*!
+ * @brief Create an unlocked mutex.
+ *
+ * This function creates a non-recursive mutex and sets it to unlocked status.
+ *
+ * Example below shows how to use this API to create the mutex handle.
+ * @code
+ * OSA_MUTEX_HANDLE_DEFINE(mutexHandle);
+ * OSA_MutexCreate((osa_mutex_handle_t)mutexHandle);
+ * @endcode
+ *
+ * @param mutexHandle Pointer to a memory space of size OSA_MUTEX_HANDLE_SIZE allocated by the caller.
+ * The handle should be 4 byte aligned, because unaligned access doesn't be supported on some devices.
+ * You can define the handle in the following two ways:
+ * #OSA_MUTEX_HANDLE_DEFINE(mutexHandle);
+ * or
+ * uint32_t mutexHandle[((OSA_MUTEX_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t))];
+ * @retval KOSA_StatusSuccess the new mutex if the mutex is created successfully.
+ * @retval KOSA_StatusError if the mutex can not be created.
+ */
+osa_status_t OSA_MutexCreate(osa_mutex_handle_t mutexHandle);
+
+/*!
+ * @brief Waits for a mutex and locks it.
+ *
+ * This function checks the mutex's status. If it is unlocked, locks it and returns the
+ * KOSA_StatusSuccess. Otherwise, waits for a timeout in milliseconds to lock.
+ *
+ * @param mutexHandle The mutex handle.
+ * @param millisec The maximum number of milliseconds to wait for the mutex.
+ * If the mutex is locked, Pass the value osaWaitForever_c will
+ * wait indefinitely, pass 0 will return KOSA_StatusTimeout
+ * immediately.
+ *
+ * @retval KOSA_StatusSuccess The mutex is locked successfully.
+ * @retval KOSA_StatusTimeout Timeout occurred.
+ * @retval KOSA_StatusError Incorrect parameter was passed.
+ *
+ * @note This is non-recursive mutex, a task can not try to lock the mutex it has locked.
+ */
+osa_status_t OSA_MutexLock(osa_mutex_handle_t mutexHandle, uint32_t millisec);
+
+/*!
+ * @brief Unlocks a previously locked mutex.
+ *
+ * @param mutexHandle The mutex handle.
+ *
+ * @retval KOSA_StatusSuccess The mutex is successfully unlocked.
+ * @retval KOSA_StatusError The mutex can not be unlocked or invalid parameter.
+ */
+osa_status_t OSA_MutexUnlock(osa_mutex_handle_t mutexHandle);
+
+/*!
+ * @brief Destroys a previously created mutex.
+ *
+ * @param mutexHandle The mutex handle.
+ *
+ * @retval KOSA_StatusSuccess The mutex is successfully destroyed.
+ * @retval KOSA_StatusError The mutex can not be destroyed.
+ *
+ */
+osa_status_t OSA_MutexDestroy(osa_mutex_handle_t mutexHandle);
+
+/*!
+ * @brief Pre-initializes an event object.
+ *
+ * This function pre-creates an event object and indicates which task this event is used by.
+ *
+ * Example below shows how to use this API to create the event handle.
+ * @code
+ * OSA_EVENT_HANDLE_DEFINE(eventHandle);
+ * OSA_EventPrecreate((osa_event_handle_t)eventHandle, (osa_task_ptr_t)taskHandler);
+ * @endcode
+ *
+ * @param eventHandle Pointer to a memory space of size OSA_EVENT_HANDLE_SIZE allocated by the caller.
+ * The handle should be 4 byte aligned, because unaligned access doesn't be supported on some devices.
+ * You can define the handle in the following two ways:
+ * #OSA_EVENT_HANDLE_DEFINE(eventHandle);
+ * or
+ * uint32 eventHandle[((OSA_EVENT_HANDLE_SIZE + sizeof(uint32) - 1U) / sizeof(uint32))];
+ * @param taskHandler The task handler this event is used by.
+ * @retval KOSA_StatusSuccess the new event if the event is pre-created successfully.
+ */
+osa_status_t OSA_EventPrecreate(osa_event_handle_t eventHandle, osa_task_ptr_t taskHandler);
+
+/*!
+ * @brief Initializes an event object with all flags cleared.
+ *
+ * This function creates an event object and set its clear mode. If autoClear
+ * is 1, when a task gets the event flags, these flags will be
+ * cleared automatically. Otherwise these flags must
+ * be cleared manually.
+ *
+ * Example below shows how to use this API to create the event handle.
+ * @code
+ * OSA_EVENT_HANDLE_DEFINE(eventHandle);
+ * OSA_EventCreate((osa_event_handle_t)eventHandle, 0);
+ * @endcode
+ *
+ * @param eventHandle Pointer to a memory space of size OSA_EVENT_HANDLE_SIZE allocated by the caller.
+ * The handle should be 4 byte aligned, because unaligned access doesn't be supported on some devices.
+ * You can define the handle in the following two ways:
+ * #OSA_EVENT_HANDLE_DEFINE(eventHandle);
+ * or
+ * uint32_t eventHandle[((OSA_EVENT_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t))];
+ * @param autoClear 1 The event is auto-clear.
+ * 0 The event manual-clear
+ * @retval KOSA_StatusSuccess the new event if the event is created successfully.
+ * @retval KOSA_StatusError if the event can not be created.
+ */
+osa_status_t OSA_EventCreate(osa_event_handle_t eventHandle, uint8_t autoClear);
+
+/*!
+ * @brief Sets one or more event flags.
+ *
+ * Sets specified flags of an event object.
+ *
+ * @param eventHandle The event handle.
+ * @param flagsToSet Flags to be set.
+ *
+ * @retval KOSA_StatusSuccess The flags were successfully set.
+ * @retval KOSA_StatusError An incorrect parameter was passed.
+ */
+osa_status_t OSA_EventSet(osa_event_handle_t eventHandle, osa_event_flags_t flagsToSet);
+
+/*!
+ * @brief Clears one or more flags.
+ *
+ * Clears specified flags of an event object.
+ *
+ * @param eventHandle The event handle.
+ * @param flagsToClear Flags to be clear.
+ *
+ * @retval KOSA_StatusSuccess The flags were successfully cleared.
+ * @retval KOSA_StatusError An incorrect parameter was passed.
+ */
+osa_status_t OSA_EventClear(osa_event_handle_t eventHandle, osa_event_flags_t flagsToClear);
+
+/*!
+ * @brief Get event's flags.
+ *
+ * Get specified flags of an event object.
+ *
+ * @param eventHandle The event handle.
+ * The macro EVENT_HANDLE_BUFFER_GET is used to get the event buffer pointer,
+ * and should not be used before the macro EVENT_HANDLE_BUFFER_DEFINE is used.
+ * @param flagsMask The flags user want to get are specified by this parameter.
+ * @param pFlagsOfEvent The event flags are obtained by this parameter.
+ *
+ * @retval KOSA_StatusSuccess The event flags were successfully got.
+ * @retval KOSA_StatusError An incorrect parameter was passed.
+ */
+osa_status_t OSA_EventGet(osa_event_handle_t eventHandle,
+ osa_event_flags_t flagsMask,
+ osa_event_flags_t *pFlagsOfEvent);
+
+/*!
+ * @brief Waits for specified event flags to be set.
+ *
+ * This function waits for a combination of flags to be set in an event object.
+ * Applications can wait for any/all bits to be set. Also this function could
+ * obtain the flags who wakeup the waiting task.
+ *
+ * @param eventHandle The event handle.
+ * @param flagsToWait Flags that to wait.
+ * @param waitAll Wait all flags or any flag to be set.
+ * @param millisec The maximum number of milliseconds to wait for the event.
+ * If the wait condition is not met, pass osaWaitForever_c will
+ * wait indefinitely, pass 0 will return KOSA_StatusTimeout
+ * immediately.
+ * @param pSetFlags Flags that wakeup the waiting task are obtained by this parameter.
+ *
+ * @retval KOSA_StatusSuccess The wait condition met and function returns successfully.
+ * @retval KOSA_StatusTimeout Has not met wait condition within timeout.
+ * @retval KOSA_StatusError An incorrect parameter was passed.
+
+ *
+ * @note Please pay attention to the flags bit width, FreeRTOS uses the most
+ * significant 8 bis as control bits, so do not wait these bits while using
+ * FreeRTOS.
+ *
+ */
+osa_status_t OSA_EventWait(osa_event_handle_t eventHandle,
+ osa_event_flags_t flagsToWait,
+ uint8_t waitAll,
+ uint32_t millisec,
+ osa_event_flags_t *pSetFlags);
+
+/*!
+ * @brief Destroys a previously created event object.
+ *
+ * @param eventHandle The event handle.
+ *
+ * @retval KOSA_StatusSuccess The event is successfully destroyed.
+ * @retval KOSA_StatusError Event destruction failed.
+ */
+osa_status_t OSA_EventDestroy(osa_event_handle_t eventHandle);
+
+/*!
+ * @brief Initializes a message queue.
+ *
+ * This function allocates memory for and initializes a message queue. Message queue elements are hardcoded as void*.
+ *
+ * Example below shows how to use this API to create the massage queue handle.
+ * @code
+ * OSA_MSGQ_HANDLE_DEFINE(msgqHandle);
+ * OSA_MsgQCreate((osa_msgq_handle_t)msgqHandle, 5U, sizeof(msg));
+ * @endcode
+ *
+ * @param msgqHandle Pointer to a memory space of size #(OSA_MSGQ_HANDLE_SIZE + msgNo*msgSize) on bare-matel
+ * and #(OSA_MSGQ_HANDLE_SIZE) on FreeRTOS allocated by the caller, message queue handle.
+ * The handle should be 4 byte aligned, because unaligned access doesn't be supported on some devices.
+ * You can define the handle in the following two ways:
+ * #OSA_MSGQ_HANDLE_DEFINE(msgqHandle);
+ * or
+ * For bm: uint32_t msgqHandle[((OSA_MSGQ_HANDLE_SIZE + msgNo*msgSize + sizeof(uint32_t) - 1U) / sizeof(uint32_t))];
+ * For freertos: uint32_t msgqHandle[((OSA_MSGQ_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t))];
+ * @param msgNo :number of messages the message queue should accommodate.
+ * @param msgSize :size of a single message structure.
+ *
+ * @retval KOSA_StatusSuccess Message queue successfully Create.
+ * @retval KOSA_StatusError Message queue create failure.
+ */
+osa_status_t OSA_MsgQCreate(osa_msgq_handle_t msgqHandle, uint32_t msgNo, uint32_t msgSize);
+
+/*!
+ * @brief Puts a message at the end of the queue.
+ *
+ * This function puts a message to the end of the message queue. If the queue
+ * is full, this function returns the KOSA_StatusError;
+ *
+ * @param msgqHandle Message Queue handler.
+ * @param pMessage Pointer to the message to be put into the queue.
+ *
+ * @retval KOSA_StatusSuccess Message successfully put into the queue.
+ * @retval KOSA_StatusError The queue was full or an invalid parameter was passed.
+ */
+osa_status_t OSA_MsgQPut(osa_msgq_handle_t msgqHandle, osa_msg_handle_t pMessage);
+
+/*!
+ * @brief Reads and remove a message at the head of the queue.
+ *
+ * This function gets a message from the head of the message queue. If the
+ * queue is empty, timeout is used to wait.
+ *
+ * @param msgqHandle Message Queue handler.
+ * @param pMessage Pointer to a memory to save the message.
+ * @param millisec The number of milliseconds to wait for a message. If the
+ * queue is empty, pass osaWaitForever_c will wait indefinitely,
+ * pass 0 will return KOSA_StatusTimeout immediately.
+ *
+ * @retval KOSA_StatusSuccess Message successfully obtained from the queue.
+ * @retval KOSA_StatusTimeout The queue remains empty after timeout.
+ * @retval KOSA_StatusError Invalid parameter.
+ */
+osa_status_t OSA_MsgQGet(osa_msgq_handle_t msgqHandle, osa_msg_handle_t pMessage, uint32_t millisec);
+
+/*!
+ * @brief Get the available message
+ *
+ * This function is used to get the available message.
+ *
+ * @param msgqHandle Message Queue handler.
+ *
+ * @return Available message count
+ */
+int OSA_MsgQAvailableMsgs(osa_msgq_handle_t msgqHandle);
+
+/*!
+ * @brief Destroys a previously created queue.
+ *
+ * @param msgqHandle Message Queue handler.
+ *
+ * @retval KOSA_StatusSuccess The queue was successfully destroyed.
+ * @retval KOSA_StatusError Message queue destruction failed.
+ */
+osa_status_t OSA_MsgQDestroy(osa_msgq_handle_t msgqHandle);
+
+/*!
+ * @brief Enable all interrupts.
+ */
+void OSA_InterruptEnable(void);
+
+/*!
+ * @brief Disable all interrupts.
+ */
+void OSA_InterruptDisable(void);
+
+/*!
+ * @brief Enable all interrupts using PRIMASK.
+ */
+void OSA_EnableIRQGlobal(void);
+
+/*!
+ * @brief Disable all interrupts using PRIMASK.
+ */
+void OSA_DisableIRQGlobal(void);
+
+/*!
+ * @brief Delays execution for a number of milliseconds.
+ *
+ * @param millisec The time in milliseconds to wait.
+ */
+void OSA_TimeDelay(uint32_t millisec);
+
+/*!
+ * @brief This function gets current time in milliseconds.
+ *
+ * @retval current time in milliseconds
+ */
+uint32_t OSA_TimeGetMsec(void);
+
+/*!
+ * @brief Installs the interrupt handler.
+ *
+ * @param IRQNumber IRQ number of the interrupt.
+ * @param handler The interrupt handler to install.
+ */
+void OSA_InstallIntHandler(uint32_t IRQNumber, void (*handler)(void));
+
+/*! @}*/
+#ifdef __cplusplus
+}
+#endif
+/*! @}*/
+#endif
\ No newline at end of file
diff --git a/third-party/fsl_sdmmc/osa/fsl_os_abstraction_config.h b/third-party/fsl_sdmmc/osa/fsl_os_abstraction_config.h
new file mode 100644
index 0000000000000000000000000000000000000000..6d3119b66a979c75934ffa901eda4648f8c82de2
--- /dev/null
+++ b/third-party/fsl_sdmmc/osa/fsl_os_abstraction_config.h
@@ -0,0 +1,48 @@
+/*!
+ * Copyright (c) 2015, Freescale Semiconductor, Inc.
+ * Copyright 2016-2018 NXP
+ *
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef _FSL_OS_ABSTRACTION_CONFIG_H_
+#define _FSL_OS_ABSTRACTION_CONFIG_H_
+
+#ifndef gMainThreadStackSize_c
+#define gMainThreadStackSize_c 1024
+#endif
+
+#ifndef gMainThreadPriority_c
+#define gMainThreadPriority_c 7
+#endif
+
+#ifndef gTaskMultipleInstancesManagement_c
+#define gTaskMultipleInstancesManagement_c 0
+#endif
+
+/*! @brief Definition to determine whether enable OSA's TASK module. */
+#ifndef OSA_USED
+#ifndef FSL_OSA_TASK_ENABLE
+#define FSL_OSA_TASK_ENABLE 0U
+#endif
+#else
+#if defined(FSL_OSA_TASK_ENABLE)
+#undef FSL_OSA_TASK_ENABLE
+#endif
+#define FSL_OSA_TASK_ENABLE 1U
+#endif /* OSA_USED */
+
+#ifndef FSL_OSA_MAIN_FUNC_ENABLE
+#define FSL_OSA_MAIN_FUNC_ENABLE 0U
+#endif
+
+#ifndef FSL_OSA_BM_TIMEOUT_ENABLE
+#define FSL_OSA_BM_TIMEOUT_ENABLE 0U
+#endif
+
+#ifndef SDK_OS_FREE_RTOS
+#define SDK_OS_FREE_RTOS
+#endif
+
+#endif /* _FSL_OS_ABSTRACTION_CONFIG_H_ */
diff --git a/third-party/fsl_sdmmc/osa/fsl_os_abstraction_free_rtos.c b/third-party/fsl_sdmmc/osa/fsl_os_abstraction_free_rtos.c
new file mode 100644
index 0000000000000000000000000000000000000000..e7987e83fa8f6433b969416e874482146b11990e
--- /dev/null
+++ b/third-party/fsl_sdmmc/osa/fsl_os_abstraction_free_rtos.c
@@ -0,0 +1,1141 @@
+/*! *********************************************************************************
+ * Copyright (c) 2015, Freescale Semiconductor, Inc.
+ * Copyright 2016-2017, 2019 NXP
+ * All rights reserved.
+ *
+ *
+ * This is the source file for the OS Abstraction layer for freertos.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ ********************************************************************************** */
+
+/*! *********************************************************************************
+*************************************************************************************
+* Include
+*************************************************************************************
+********************************************************************************** */
+#include "fsl_common.h"
+#include "fsl_os_abstraction.h"
+#include "fsl_os_abstraction_free_rtos.h"
+#include
+#include "fsl_component_generic_list.h"
+
+/*! *********************************************************************************
+*************************************************************************************
+* Private macros
+*************************************************************************************
+********************************************************************************** */
+
+/* Weak function. */
+#if defined(__GNUC__)
+#define __WEAK_FUNC __attribute__((weak))
+#elif defined(__ICCARM__)
+#define __WEAK_FUNC __weak
+#elif defined(__CC_ARM) || defined(__ARMCC_VERSION)
+#define __WEAK_FUNC __attribute__((weak))
+#endif
+
+#define millisecToTicks(millisec) (((millisec)*configTICK_RATE_HZ + 999U) / 1000U)
+
+#ifdef DEBUG_ASSERT
+#define OS_ASSERT(condition) \
+ if (!(condition)) \
+ while (1) \
+ ;
+#else
+#define OS_ASSERT(condition) (void)(condition);
+#endif
+
+/*! @brief Converts milliseconds to ticks*/
+#define MSEC_TO_TICK(msec) \
+ (((uint32_t)(msec) + 500uL / (uint32_t)configTICK_RATE_HZ) * (uint32_t)configTICK_RATE_HZ / 1000uL)
+#define TICKS_TO_MSEC(tick) ((uint32_t)((uint64_t)(tick)*1000uL / (uint64_t)configTICK_RATE_HZ))
+/************************************************************************************
+*************************************************************************************
+* Private type definitions
+*************************************************************************************
+************************************************************************************/
+typedef struct osa_freertos_task
+{
+ list_element_t link;
+ TaskHandle_t taskHandle;
+} osa_freertos_task_t;
+
+typedef struct _osa_event_struct
+{
+ EventGroupHandle_t handle; /* The event handle */
+ uint8_t autoClear; /*!< Auto clear or manual clear */
+} osa_event_struct_t;
+
+/*! @brief State structure for bm osa manager. */
+typedef struct _osa_state
+{
+#if (defined(FSL_OSA_TASK_ENABLE) && (FSL_OSA_TASK_ENABLE > 0U))
+ list_label_t taskList;
+#if (defined(FSL_OSA_MAIN_FUNC_ENABLE) && (FSL_OSA_MAIN_FUNC_ENABLE > 0U))
+ OSA_TASK_HANDLE_DEFINE(mainTaskHandle);
+#endif
+#endif
+ uint32_t basePriority;
+ int32_t basePriorityNesting;
+ uint32_t interruptDisableCount;
+} osa_state_t;
+
+/*! *********************************************************************************
+*************************************************************************************
+* Private prototypes
+*************************************************************************************
+********************************************************************************** */
+__WEAK_FUNC void main_task(void const *argument);
+__WEAK_FUNC void main_task(void const *argument)
+{
+}
+
+void startup_task(void *argument);
+extern int vApplicationInIrq(void);
+/*! *********************************************************************************
+*************************************************************************************
+* Public memory declarations
+*************************************************************************************
+********************************************************************************** */
+const uint8_t gUseRtos_c = USE_RTOS; /* USE_RTOS = 0 for BareMetal and 1 for OS */
+
+static osa_state_t s_osaState = {0};
+/*! *********************************************************************************
+*************************************************************************************
+* Private memory declarations
+*************************************************************************************
+********************************************************************************** */
+
+/*! *********************************************************************************
+*************************************************************************************
+* Public functions
+*************************************************************************************
+********************************************************************************** */
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_MemoryAllocate
+ * Description : Reserves the requested amount of memory in bytes.
+ *
+ *END**************************************************************************/
+void *OSA_MemoryAllocate(uint32_t length)
+{
+ void *p = (void *)pvPortMalloc(length);
+
+ if (NULL != p)
+ {
+ (void)memset(p, 0, length);
+ }
+
+ return p;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_MemoryFree
+ * Description : Frees the memory previously reserved.
+ *
+ *END**************************************************************************/
+void OSA_MemoryFree(void *p)
+{
+ vPortFree(p);
+}
+
+void OSA_EnterCritical(uint32_t *sr)
+{
+ if (vApplicationInIrq())
+ {
+ *sr = portSET_INTERRUPT_MASK_FROM_ISR();
+ }
+ else
+ {
+ portENTER_CRITICAL();
+ }
+}
+
+void OSA_ExitCritical(uint32_t sr)
+{
+ if (vApplicationInIrq())
+ {
+ portCLEAR_INTERRUPT_MASK_FROM_ISR(sr);
+ }
+ else
+ {
+ portEXIT_CRITICAL();
+ }
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : startup_task
+ * Description : Wrapper over main_task..
+ *
+ *END**************************************************************************/
+void startup_task(void *argument)
+{
+ main_task(argument);
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_TaskGetCurrentHandle
+ * Description : This function is used to get current active task's handler.
+ *
+ *END**************************************************************************/
+#if (defined(FSL_OSA_TASK_ENABLE) && (FSL_OSA_TASK_ENABLE > 0U))
+osa_task_handle_t OSA_TaskGetCurrentHandle(void)
+{
+ list_element_handle_t list_element;
+ osa_freertos_task_t *ptask;
+
+ list_element = LIST_GetHead(&s_osaState.taskList);
+ while (NULL != list_element)
+ {
+ ptask = (osa_freertos_task_t *)(void *)list_element;
+ if (ptask->taskHandle == xTaskGetCurrentTaskHandle())
+ {
+ return (osa_task_handle_t)ptask;
+ }
+ list_element = LIST_GetNext(list_element);
+ }
+ return NULL;
+}
+#endif
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_TaskYield
+ * Description : When a task calls this function, it will give up CPU and put
+ * itself to the tail of ready list.
+ *
+ *END**************************************************************************/
+#if (defined(FSL_OSA_TASK_ENABLE) && (FSL_OSA_TASK_ENABLE > 0U))
+void OSA_TaskYield(void)
+{
+ taskYIELD();
+}
+#endif
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_TaskGetPriority
+ * Description : This function returns task's priority by task handler.
+ *
+ *END**************************************************************************/
+#if (defined(FSL_OSA_TASK_ENABLE) && (FSL_OSA_TASK_ENABLE > 0U))
+osa_task_priority_t OSA_TaskGetPriority(osa_task_handle_t taskHandle)
+{
+ assert(NULL != taskHandle);
+ osa_freertos_task_t *ptask = (osa_freertos_task_t *)taskHandle;
+ return (osa_task_priority_t)(PRIORITY_RTOS_TO_OSA((uxTaskPriorityGet(ptask->taskHandle))));
+}
+#endif
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_TaskSetPriority
+ * Description : This function sets task's priority by task handler.
+ *
+ *END**************************************************************************/
+#if (defined(FSL_OSA_TASK_ENABLE) && (FSL_OSA_TASK_ENABLE > 0U))
+osa_status_t OSA_TaskSetPriority(osa_task_handle_t taskHandle, osa_task_priority_t taskPriority)
+{
+ assert(NULL != taskHandle);
+ osa_freertos_task_t *ptask = (osa_freertos_task_t *)taskHandle;
+ vTaskPrioritySet((task_handler_t)ptask->taskHandle, PRIORITY_OSA_TO_RTOS(((uint32_t)taskPriority)));
+ return KOSA_StatusSuccess;
+}
+#endif
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_TaskCreate
+ * Description : This function is used to create a task and make it ready.
+ * Param[in] : threadDef - Definition of the thread.
+ * task_param - Parameter to pass to the new thread.
+ * Return Thread handle of the new thread, or NULL if failed.
+ *
+ *END**************************************************************************/
+#if (defined(FSL_OSA_TASK_ENABLE) && (FSL_OSA_TASK_ENABLE > 0U))
+osa_status_t OSA_TaskCreate(osa_task_handle_t taskHandle, const osa_task_def_t *thread_def, osa_task_param_t task_param)
+{
+ osa_status_t status = KOSA_StatusError;
+ assert(sizeof(osa_freertos_task_t) == OSA_TASK_HANDLE_SIZE);
+ assert(NULL != taskHandle);
+ TaskHandle_t pxCreatedTask;
+ osa_freertos_task_t *ptask = (osa_freertos_task_t *)taskHandle;
+ OSA_InterruptDisable();
+ if (xTaskCreate(
+ (TaskFunction_t)thread_def->pthread, /* pointer to the task */
+ (char const *)thread_def->tname, /* task name for kernel awareness debugging */
+ (configSTACK_DEPTH_TYPE)((uint16_t)thread_def->stacksize / sizeof(portSTACK_TYPE)), /* task stack size */
+ (task_param_t)task_param, /* optional task startup argument */
+ PRIORITY_OSA_TO_RTOS((thread_def->tpriority)), /* initial priority */
+ &pxCreatedTask /* optional task handle to create */
+ ) == pdPASS)
+ {
+ ptask->taskHandle = pxCreatedTask;
+
+ (void)LIST_AddTail(&s_osaState.taskList, (list_element_handle_t) & (ptask->link));
+
+ status = KOSA_StatusSuccess;
+ }
+ OSA_InterruptEnable();
+ return status;
+}
+#endif
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_TaskDestroy
+ * Description : This function destroy a task.
+ * Param[in] :taskHandle - Thread handle.
+ * Return KOSA_StatusSuccess if the task is destroied, otherwise return KOSA_StatusError.
+ *
+ *END**************************************************************************/
+#if (defined(FSL_OSA_TASK_ENABLE) && (FSL_OSA_TASK_ENABLE > 0U))
+osa_status_t OSA_TaskDestroy(osa_task_handle_t taskHandle)
+{
+ assert(NULL != taskHandle);
+ osa_freertos_task_t *ptask = (osa_freertos_task_t *)taskHandle;
+ osa_status_t status;
+ UBaseType_t oldPriority;
+
+ /*Change priority to avoid context switches*/
+ oldPriority = uxTaskPriorityGet(xTaskGetCurrentTaskHandle());
+ vTaskPrioritySet(xTaskGetCurrentTaskHandle(), (configMAX_PRIORITIES - 1));
+#if INCLUDE_vTaskDelete /* vTaskDelete() enabled */
+ vTaskDelete((task_handler_t)ptask->taskHandle);
+ status = KOSA_StatusSuccess;
+#else
+ status = KOSA_StatusError; /* vTaskDelete() not available */
+#endif
+ vTaskPrioritySet(xTaskGetCurrentTaskHandle(), oldPriority);
+ OSA_InterruptDisable();
+ (void)LIST_RemoveElement(taskHandle);
+ OSA_InterruptEnable();
+ return status;
+}
+#endif
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_TimeDelay
+ * Description : This function is used to suspend the active thread for the given number of milliseconds.
+ *
+ *END**************************************************************************/
+void OSA_TimeDelay(uint32_t millisec)
+{
+ vTaskDelay(millisecToTicks(millisec));
+}
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_TimeGetMsec
+ * Description : This function gets current time in milliseconds.
+ *
+ *END**************************************************************************/
+uint32_t OSA_TimeGetMsec(void)
+{
+ TickType_t ticks;
+
+ if (vApplicationInIrq())
+ {
+ ticks = xTaskGetTickCountFromISR();
+ }
+ else
+ {
+ ticks = xTaskGetTickCount();
+ }
+
+ return TICKS_TO_MSEC(ticks);
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_SemaphorePrecreate
+ * Description : This function is used to pre-create a semaphore.
+ * Return : KOSA_StatusSuccess
+ *
+ *END**************************************************************************/
+
+osa_status_t OSA_SemaphorePrecreate(osa_semaphore_handle_t semaphoreHandle, osa_task_ptr_t taskHandler)
+{
+ semaphoreHandle = semaphoreHandle;
+ taskHandler = taskHandler;
+ return KOSA_StatusSuccess;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_SemaphoreCreate
+ * Description : This function is used to create a semaphore.
+ * Return : Semaphore handle of the new semaphore, or NULL if failed.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_SemaphoreCreate(osa_semaphore_handle_t semaphoreHandle, uint32_t initValue)
+{
+ assert(sizeof(osa_semaphore_handle_t) == OSA_SEM_HANDLE_SIZE);
+ assert(NULL != semaphoreHandle);
+
+ union
+ {
+ QueueHandle_t sem;
+ uint32_t semhandle;
+ } xSemaHandle;
+
+ xSemaHandle.sem = xSemaphoreCreateCounting(0xFF, initValue);
+ if (NULL != xSemaHandle.sem)
+ {
+ *(uint32_t *)semaphoreHandle = xSemaHandle.semhandle;
+ return KOSA_StatusSuccess;
+ }
+ return KOSA_StatusError;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_SemaphoreCreateBinary
+ * Description : This function is used to create a binary semaphore.
+ * Return : Semaphore handle of the new binary semaphore, or NULL if failed.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_SemaphoreCreateBinary(osa_semaphore_handle_t semaphoreHandle)
+{
+ assert(sizeof(osa_semaphore_handle_t) == OSA_SEM_HANDLE_SIZE);
+ assert(NULL != semaphoreHandle);
+
+ union
+ {
+ QueueHandle_t sem;
+ uint32_t semhandle;
+ } xSemaHandle;
+
+ xSemaHandle.sem = xSemaphoreCreateBinary();
+ if (NULL != xSemaHandle.sem)
+ {
+ *(uint32_t *)semaphoreHandle = xSemaHandle.semhandle;
+ return KOSA_StatusSuccess;
+ }
+ return KOSA_StatusError;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_SemaphoreDestroy
+ * Description : This function is used to destroy a semaphore.
+ * Return : KOSA_StatusSuccess if the semaphore is destroyed successfully, otherwise return KOSA_StatusError.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_SemaphoreDestroy(osa_semaphore_handle_t semaphoreHandle)
+{
+ assert(NULL != semaphoreHandle);
+ QueueHandle_t sem = (QueueHandle_t)(void *)(uintptr_t *)(*(uintptr_t *)semaphoreHandle);
+
+ vSemaphoreDelete(sem);
+ return KOSA_StatusSuccess;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_SemaphoreWait
+ * Description : This function checks the semaphore's counting value, if it is
+ * positive, decreases it and returns KOSA_StatusSuccess, otherwise, timeout
+ * will be used for wait. The parameter timeout indicates how long should wait
+ * in milliseconds. Pass osaWaitForever_c to wait indefinitely, pass 0 will
+ * return KOSA_StatusTimeout immediately if semaphore is not positive.
+ * This function returns KOSA_StatusSuccess if the semaphore is received, returns
+ * KOSA_StatusTimeout if the semaphore is not received within the specified
+ * 'timeout', returns KOSA_StatusError if any errors occur during waiting.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_SemaphoreWait(osa_semaphore_handle_t semaphoreHandle, uint32_t millisec)
+{
+ size_t timeoutTicks;
+ assert(NULL != semaphoreHandle);
+ QueueHandle_t sem = (QueueHandle_t)(void *)(uintptr_t *)(*(uintptr_t *)semaphoreHandle);
+
+ /* Convert timeout from millisecond to tick. */
+ if (millisec == osaWaitForever_c)
+ {
+ timeoutTicks = portMAX_DELAY;
+ }
+ else
+ {
+ timeoutTicks = MSEC_TO_TICK(millisec);
+ }
+
+ if (((BaseType_t)0) == (BaseType_t)xSemaphoreTake(sem, timeoutTicks))
+ {
+ return KOSA_StatusTimeout; /* timeout */
+ }
+ else
+ {
+ return KOSA_StatusSuccess; /* semaphore taken */
+ }
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_SemaphorePost
+ * Description : This function is used to wake up one task that wating on the
+ * semaphore. If no task is waiting, increase the semaphore. The function returns
+ * KOSA_StatusSuccess if the semaphre is post successfully, otherwise returns
+ * KOSA_StatusError.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_SemaphorePost(osa_semaphore_handle_t semaphoreHandle)
+{
+ assert(NULL != semaphoreHandle);
+ osa_status_t status = KOSA_StatusError;
+ QueueHandle_t sem = (QueueHandle_t)(void *)(uintptr_t *)(*(uintptr_t *)semaphoreHandle);
+
+ if (vApplicationInIrq())
+ {
+ portBASE_TYPE taskToWake = (portBASE_TYPE)pdFALSE;
+
+ if (((BaseType_t)1) == (BaseType_t)xSemaphoreGiveFromISR(sem, &taskToWake))
+ {
+ portYIELD_FROM_ISR(((bool)(taskToWake)));
+ status = KOSA_StatusSuccess;
+ }
+ else
+ {
+ status = KOSA_StatusError;
+ }
+ }
+ else
+ {
+ if (((BaseType_t)1) == (BaseType_t)xSemaphoreGive(sem))
+ {
+ status = KOSA_StatusSuccess; /* sync object given */
+ }
+ else
+ {
+ status = KOSA_StatusError;
+ }
+ }
+ return status;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_MutexCreate
+ * Description : This function is used to create a mutex.
+ * Return : Mutex handle of the new mutex, or NULL if failed.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_MutexCreate(osa_mutex_handle_t mutexHandle)
+{
+ assert(sizeof(osa_mutex_handle_t) == OSA_MUTEX_HANDLE_SIZE);
+ assert(NULL != mutexHandle);
+
+ union
+ {
+ QueueHandle_t mutex;
+ uint32_t pmutexHandle;
+ } xMutexHandle;
+
+ xMutexHandle.mutex = xSemaphoreCreateRecursiveMutex();
+ if (NULL != xMutexHandle.mutex)
+ {
+ *(uint32_t *)mutexHandle = xMutexHandle.pmutexHandle;
+ return KOSA_StatusSuccess;
+ }
+ return KOSA_StatusError;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_MutexLock
+ * Description : This function checks the mutex's status, if it is unlocked,
+ * lock it and returns KOSA_StatusSuccess, otherwise, wait for the mutex.
+ * This function returns KOSA_StatusSuccess if the mutex is obtained, returns
+ * KOSA_StatusError if any errors occur during waiting. If the mutex has been
+ * locked, pass 0 as timeout will return KOSA_StatusTimeout immediately.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_MutexLock(osa_mutex_handle_t mutexHandle, uint32_t millisec)
+{
+ assert(NULL != mutexHandle);
+ size_t timeoutTicks;
+ QueueHandle_t mutex = (QueueHandle_t)(void *)(uintptr_t *)(*(uintptr_t *)mutexHandle);
+
+ /* Convert timeout from millisecond to tick. */
+ if (millisec == osaWaitForever_c)
+ {
+ timeoutTicks = portMAX_DELAY;
+ }
+ else
+ {
+ timeoutTicks = MSEC_TO_TICK(millisec);
+ }
+
+ if (((BaseType_t)0) == (BaseType_t)xSemaphoreTakeRecursive(mutex, timeoutTicks))
+ {
+ return KOSA_StatusTimeout; /* timeout */
+ }
+ else
+ {
+ return KOSA_StatusSuccess; /* semaphore taken */
+ }
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_MutexUnlock
+ * Description : This function is used to unlock a mutex.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_MutexUnlock(osa_mutex_handle_t mutexHandle)
+{
+ assert(NULL != mutexHandle);
+ QueueHandle_t mutex = (QueueHandle_t)(void *)(uintptr_t *)(*(uintptr_t *)mutexHandle);
+
+ if (((BaseType_t)0) == (BaseType_t)xSemaphoreGiveRecursive(mutex))
+ {
+ return KOSA_StatusError;
+ }
+ else
+ {
+ return KOSA_StatusSuccess;
+ }
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_MutexDestroy
+ * Description : This function is used to destroy a mutex.
+ * Return : KOSA_StatusSuccess if the lock object is destroyed successfully, otherwise return KOSA_StatusError.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_MutexDestroy(osa_mutex_handle_t mutexHandle)
+{
+ assert(NULL != mutexHandle);
+ QueueHandle_t mutex = (QueueHandle_t)(void *)(uintptr_t *)(*(uintptr_t *)mutexHandle);
+
+ vSemaphoreDelete(mutex);
+ return KOSA_StatusSuccess;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_EventPrecreate
+ * Description : This function is used to pre-create a event.
+ * Return : KOSA_StatusSuccess
+ *
+ *END**************************************************************************/
+
+osa_status_t OSA_EventPrecreate(osa_event_handle_t eventHandle, osa_task_ptr_t taskHandler)
+{
+ eventHandle = eventHandle;
+ taskHandler = taskHandler;
+ return KOSA_StatusSuccess;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_EventCreate
+ * Description : This function is used to create a event object.
+ * Return : Event handle of the new event, or NULL if failed.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_EventCreate(osa_event_handle_t eventHandle, uint8_t autoClear)
+{
+ assert(NULL != eventHandle);
+ osa_event_struct_t *pEventStruct = (osa_event_struct_t *)eventHandle;
+
+ pEventStruct->handle = xEventGroupCreate();
+ if (NULL != pEventStruct->handle)
+ {
+ pEventStruct->autoClear = autoClear;
+ }
+ else
+ {
+ return KOSA_StatusError;
+ }
+ return KOSA_StatusSuccess;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_EventSet
+ * Description : Set one or more event flags of an event object.
+ * Return : KOSA_StatusSuccess if set successfully, KOSA_StatusError if failed.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_EventSet(osa_event_handle_t eventHandle, osa_event_flags_t flagsToSet)
+{
+ portBASE_TYPE taskToWake = (portBASE_TYPE)pdFALSE;
+ BaseType_t result;
+ assert(NULL != eventHandle);
+ osa_event_struct_t *pEventStruct = (osa_event_struct_t *)eventHandle;
+
+ if (NULL == pEventStruct->handle)
+ {
+ return KOSA_StatusError;
+ }
+ if (vApplicationInIrq())
+ {
+#if (configUSE_TRACE_FACILITY == 1)
+ result = xEventGroupSetBitsFromISR(pEventStruct->handle, (event_flags_t)flagsToSet, &taskToWake);
+#else
+ result = xEventGroupSetBitsFromISR((void *)pEventStruct->handle, (event_flags_t)flagsToSet, &taskToWake);
+#endif
+ assert(pdPASS == result);
+ (void)result;
+ portYIELD_FROM_ISR(((bool)(taskToWake)));
+ }
+ else
+ {
+ (void)xEventGroupSetBits(pEventStruct->handle, (event_flags_t)flagsToSet);
+ }
+
+ (void)result;
+ return KOSA_StatusSuccess;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_EventClear
+ * Description : Clear one or more event flags of an event object.
+ * Return :KOSA_StatusSuccess if clear successfully, KOSA_StatusError if failed.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_EventClear(osa_event_handle_t eventHandle, osa_event_flags_t flagsToClear)
+{
+ assert(NULL != eventHandle);
+ osa_event_struct_t *pEventStruct = (osa_event_struct_t *)eventHandle;
+
+ if (NULL == pEventStruct->handle)
+ {
+ return KOSA_StatusError;
+ }
+
+ if (vApplicationInIrq())
+ {
+#if (configUSE_TRACE_FACILITY == 1)
+ (void)xEventGroupClearBitsFromISR(pEventStruct->handle, (event_flags_t)flagsToClear);
+#else
+ (void)xEventGroupClearBitsFromISR((void *)pEventStruct->handle, (event_flags_t)flagsToClear);
+#endif
+ }
+ else
+ {
+ (void)xEventGroupClearBits(pEventStruct->handle, (event_flags_t)flagsToClear);
+ }
+ return KOSA_StatusSuccess;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_EventGet
+ * Description : This function is used to get event's flags that specified by prameter
+ * flagsMask, and the flags (user specified) are obatianed by parameter pFlagsOfEvent. So
+ * you should pass the parameter 0xffffffff to specify you want to check all.
+ * Return :KOSA_StatusSuccess if event flags were successfully got, KOSA_StatusError if failed.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_EventGet(osa_event_handle_t eventHandle, osa_event_flags_t flagsMask, osa_event_flags_t *pFlagsOfEvent)
+{
+ assert(NULL != eventHandle);
+ osa_event_struct_t *pEventStruct = (osa_event_struct_t *)eventHandle;
+ EventBits_t eventFlags;
+
+ if (NULL == pEventStruct->handle)
+ {
+ return KOSA_StatusError;
+ }
+
+ if (NULL == pFlagsOfEvent)
+ {
+ return KOSA_StatusError;
+ }
+
+ if (vApplicationInIrq())
+ {
+ eventFlags = xEventGroupGetBitsFromISR(pEventStruct->handle);
+ }
+ else
+ {
+ eventFlags = xEventGroupGetBits(pEventStruct->handle);
+ }
+
+ *pFlagsOfEvent = (osa_event_flags_t)eventFlags & flagsMask;
+
+ return KOSA_StatusSuccess;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_EventWait
+ * Description : This function checks the event's status, if it meets the wait
+ * condition, return KOSA_StatusSuccess, otherwise, timeout will be used for
+ * wait. The parameter timeout indicates how long should wait in milliseconds.
+ * Pass osaWaitForever_c to wait indefinitely, pass 0 will return the value
+ * KOSA_StatusTimeout immediately if wait condition is not met. The event flags
+ * will be cleared if the event is auto clear mode. Flags that wakeup waiting
+ * task could be obtained from the parameter setFlags.
+ * This function returns KOSA_StatusSuccess if wait condition is met, returns
+ * KOSA_StatusTimeout if wait condition is not met within the specified
+ * 'timeout', returns KOSA_StatusError if any errors occur during waiting.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_EventWait(osa_event_handle_t eventHandle,
+ osa_event_flags_t flagsToWait,
+ uint8_t waitAll,
+ uint32_t millisec,
+ osa_event_flags_t *pSetFlags)
+{
+ assert(NULL != eventHandle);
+ BaseType_t clearMode;
+ size_t timeoutTicks;
+ event_flags_t flagsSave;
+ osa_event_struct_t *pEventStruct = (osa_event_struct_t *)eventHandle;
+
+ /* Clean FreeRTOS cotrol flags */
+ flagsToWait = flagsToWait & 0x00FFFFFFU;
+ if (NULL == pEventStruct->handle)
+ {
+ return KOSA_StatusError;
+ }
+
+ /* Convert timeout from millisecond to tick. */
+ if (millisec == osaWaitForever_c)
+ {
+ timeoutTicks = portMAX_DELAY;
+ }
+ else
+ {
+ timeoutTicks = millisec / portTICK_PERIOD_MS;
+ }
+
+ clearMode = (pEventStruct->autoClear != 0U) ? pdTRUE : pdFALSE;
+
+ flagsSave = xEventGroupWaitBits(pEventStruct->handle, (event_flags_t)flagsToWait, clearMode, (BaseType_t)waitAll,
+ timeoutTicks);
+
+ flagsSave &= (event_flags_t)flagsToWait;
+ if (NULL != pSetFlags)
+ {
+ *pSetFlags = (osa_event_flags_t)flagsSave;
+ }
+
+ if (0U != flagsSave)
+ {
+ return KOSA_StatusSuccess;
+ }
+ else
+ {
+ return KOSA_StatusTimeout;
+ }
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_EventDestroy
+ * Description : This function is used to destroy a event object. Return
+ * KOSA_StatusSuccess if the event object is destroyed successfully, otherwise
+ * return KOSA_StatusError.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_EventDestroy(osa_event_handle_t eventHandle)
+{
+ assert(NULL != eventHandle);
+ osa_event_struct_t *pEventStruct = (osa_event_struct_t *)eventHandle;
+
+ if (NULL == pEventStruct->handle)
+ {
+ return KOSA_StatusError;
+ }
+ vEventGroupDelete(pEventStruct->handle);
+ return KOSA_StatusSuccess;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_MsgQCreate
+ * Description : This function is used to create a message queue.
+ * Return : the handle to the message queue if create successfully, otherwise
+ * return NULL.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_MsgQCreate(osa_msgq_handle_t msgqHandle, uint32_t msgNo, uint32_t msgSize)
+{
+ assert(sizeof(osa_msgq_handle_t) == OSA_MSGQ_HANDLE_SIZE);
+ assert(NULL != msgqHandle);
+
+ union
+ {
+ QueueHandle_t msgq;
+ uint32_t pmsgqHandle;
+ } xMsgqHandle;
+
+ /* Create the message queue where the number and size is specified by msgNo and msgSize */
+ xMsgqHandle.msgq = xQueueCreate(msgNo, msgSize);
+ if (NULL != xMsgqHandle.msgq)
+ {
+ *(uint32_t *)msgqHandle = xMsgqHandle.pmsgqHandle;
+ return KOSA_StatusSuccess;
+ }
+ return KOSA_StatusError;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_MsgQPut
+ * Description : This function is used to put a message to a message queue.
+ * Return : KOSA_StatusSuccess if the message is put successfully, otherwise return KOSA_StatusError.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_MsgQPut(osa_msgq_handle_t msgqHandle, osa_msg_handle_t pMessage)
+{
+ osa_status_t osaStatus;
+ assert(NULL != msgqHandle);
+ portBASE_TYPE taskToWake = (portBASE_TYPE)pdFALSE;
+ QueueHandle_t handler = (QueueHandle_t)(void *)(uintptr_t *)(*(uintptr_t *)msgqHandle);
+
+ if (vApplicationInIrq())
+ {
+ if (((BaseType_t)1) == (BaseType_t)xQueueSendToBackFromISR(handler, pMessage, &taskToWake))
+ {
+ portYIELD_FROM_ISR(((bool)(taskToWake)));
+ osaStatus = KOSA_StatusSuccess;
+ }
+ else
+ {
+ osaStatus = KOSA_StatusError;
+ }
+ }
+ else
+ {
+ osaStatus = (xQueueSendToBack(handler, pMessage, 0) == pdPASS) ? (KOSA_StatusSuccess) : (KOSA_StatusError);
+ }
+
+ return osaStatus;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_MsgQGet
+ * Description : This function checks the queue's status, if it is not empty,
+ * get message from it and return KOSA_StatusSuccess, otherwise, timeout will
+ * be used for wait. The parameter timeout indicates how long should wait in
+ * milliseconds. Pass osaWaitForever_c to wait indefinitely, pass 0 will return
+ * KOSA_StatusTimeout immediately if queue is empty.
+ * This function returns KOSA_StatusSuccess if message is got successfully,
+ * returns KOSA_StatusTimeout if message queue is empty within the specified
+ * 'timeout', returns KOSA_StatusError if any errors occur during waiting.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_MsgQGet(osa_msgq_handle_t msgqHandle, osa_msg_handle_t pMessage, uint32_t millisec)
+{
+ osa_status_t osaStatus;
+ assert(NULL != msgqHandle);
+ QueueHandle_t handler = (QueueHandle_t)(void *)(uintptr_t *)(*(uintptr_t *)msgqHandle);
+
+ size_t timeoutTicks;
+
+ if (millisec == osaWaitForever_c)
+ {
+ timeoutTicks = portMAX_DELAY;
+ }
+ else
+ {
+ timeoutTicks = MSEC_TO_TICK(millisec);
+ }
+ if (pdPASS != xQueueReceive(handler, pMessage, timeoutTicks))
+ {
+ osaStatus = KOSA_StatusTimeout; /* not able to send it to the queue? */
+ }
+ else
+ {
+ osaStatus = KOSA_StatusSuccess;
+ }
+ return osaStatus;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_MsgQAvailableMsgs
+ * Description : This function is used to get the available message.
+ * Return : Available message count
+ *
+ *END**************************************************************************/
+int OSA_MsgQAvailableMsgs(osa_msgq_handle_t msgqHandle)
+{
+ QueueHandle_t handler;
+ assert(NULL != msgqHandle);
+ handler = (QueueHandle_t)(void *)(uintptr_t *)(*(uintptr_t *)msgqHandle);
+ return (int)uxQueueMessagesWaiting((QueueHandle_t)handler);
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_MsgQDestroy
+ * Description : This function is used to destroy the message queue.
+ * Return : KOSA_StatusSuccess if the message queue is destroyed successfully, otherwise return KOSA_StatusError.
+ *
+ *END**************************************************************************/
+osa_status_t OSA_MsgQDestroy(osa_msgq_handle_t msgqHandle)
+{
+ assert(NULL != msgqHandle);
+ QueueHandle_t handler = (QueueHandle_t)(void *)(uintptr_t *)(*(uintptr_t *)msgqHandle);
+
+ vQueueDelete(handler);
+ return KOSA_StatusSuccess;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_InterruptEnable
+ * Description : self explanatory.
+ *
+ *END**************************************************************************/
+void OSA_InterruptEnable(void)
+{
+ if (vApplicationInIrq())
+ {
+ if (1 == s_osaState.basePriorityNesting)
+ {
+ portCLEAR_INTERRUPT_MASK_FROM_ISR(s_osaState.basePriority);
+ }
+
+ if (s_osaState.basePriorityNesting > 0)
+ {
+ s_osaState.basePriorityNesting--;
+ }
+ }
+ else
+ {
+ portEXIT_CRITICAL();
+ }
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_InterruptDisable
+ * Description : self explanatory.
+ *
+ *END**************************************************************************/
+void OSA_InterruptDisable(void)
+{
+ if (vApplicationInIrq())
+ {
+ if (0 == s_osaState.basePriorityNesting)
+ {
+ s_osaState.basePriority = portSET_INTERRUPT_MASK_FROM_ISR();
+ }
+ s_osaState.basePriorityNesting++;
+ }
+ else
+ {
+ portENTER_CRITICAL();
+ }
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_EnableIRQGlobal
+ * Description : enable interrupts using PRIMASK register.
+ *
+ *END**************************************************************************/
+void OSA_EnableIRQGlobal(void)
+{
+ if (s_osaState.interruptDisableCount > 0U)
+ {
+ s_osaState.interruptDisableCount--;
+
+ if (0U == s_osaState.interruptDisableCount)
+ {
+ portENABLE_INTERRUPTS();
+ }
+ /* call core API to enable the global interrupt*/
+ }
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_DisableIRQGlobal
+ * Description : disable interrupts using PRIMASK register.
+ *
+ *END**************************************************************************/
+void OSA_DisableIRQGlobal(void)
+{
+ /* call core API to disable the global interrupt*/
+ portDISABLE_INTERRUPTS();
+
+ /* update counter*/
+ s_osaState.interruptDisableCount++;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_InstallIntHandler
+ * Description : This function is used to install interrupt handler.
+ *
+ *END**************************************************************************/
+void OSA_InstallIntHandler(uint32_t IRQNumber, void (*handler)(void))
+{
+#if defined(__IAR_SYSTEMS_ICC__)
+ _Pragma("diag_suppress = Pm138")
+#endif
+#if defined(ENABLE_RAM_VECTOR_TABLE)
+ (void) InstallIRQHandler((IRQn_Type)IRQNumber, (uint32_t)handler);
+#endif /* ENABLE_RAM_VECTOR_TABLE. */
+#if defined(__IAR_SYSTEMS_ICC__)
+ _Pragma("diag_remark = PM138")
+#endif
+}
+
+/*!*********************************************************************************
+*************************************************************************************
+* Private functions
+*************************************************************************************
+********************************************************************************** */
+#if (defined(FSL_OSA_TASK_ENABLE) && (FSL_OSA_TASK_ENABLE > 0U))
+#if (defined(FSL_OSA_MAIN_FUNC_ENABLE) && (FSL_OSA_MAIN_FUNC_ENABLE > 0U))
+static OSA_TASK_DEFINE(startup_task, gMainThreadPriority_c, 1, gMainThreadStackSize_c, 0);
+
+int main(void)
+{
+ extern void BOARD_InitHardware(void);
+ OSA_Init();
+ /* Initialize MCU clock */
+ BOARD_InitHardware();
+
+ (void)OSA_TaskCreate((osa_task_handle_t)s_osaState.mainTaskHandle, OSA_TASK(startup_task), NULL);
+
+ OSA_Start();
+ return 0;
+}
+#endif /*(defined(FSL_OSA_MAIN_FUNC_ENABLE) && (FSL_OSA_MAIN_FUNC_ENABLE > 0U))*/
+#endif /* FSL_OSA_TASK_ENABLE */
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_Init
+ * Description : This function is used to setup the basic services, it should
+ * be called first in function main.
+ *
+ *END**************************************************************************/
+#if (defined(FSL_OSA_TASK_ENABLE) && (FSL_OSA_TASK_ENABLE > 0U))
+void OSA_Init(void)
+{
+ LIST_Init((&s_osaState.taskList), 0);
+ s_osaState.basePriorityNesting = 0;
+ s_osaState.interruptDisableCount = 0;
+}
+#endif
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : OSA_Start
+ * Description : This function is used to start RTOS scheduler.
+ *
+ *END**************************************************************************/
+#if (defined(FSL_OSA_TASK_ENABLE) && (FSL_OSA_TASK_ENABLE > 0U))
+void OSA_Start(void)
+{
+ vTaskStartScheduler();
+}
+#endif
diff --git a/third-party/fsl_sdmmc/osa/fsl_os_abstraction_free_rtos.h b/third-party/fsl_sdmmc/osa/fsl_os_abstraction_free_rtos.h
new file mode 100644
index 0000000000000000000000000000000000000000..7eb0cf6c69ee99775e3f761da74b3447c1cdf105
--- /dev/null
+++ b/third-party/fsl_sdmmc/osa/fsl_os_abstraction_free_rtos.h
@@ -0,0 +1,135 @@
+/*! *********************************************************************************
+ * Copyright (c) 2013-2014, Freescale Semiconductor, Inc.
+ * Copyright 2016-2017 NXP
+ * All rights reserved.
+ *
+ * File
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ ********************************************************************************** */
+#if !defined(__FSL_OS_ABSTRACTION_FREERTOS_H__)
+#define __FSL_OS_ABSTRACTION_FREERTOS_H__
+
+#if defined(__IAR_SYSTEMS_ICC__)
+/**
+ * Workaround to disable MISRA C message suppress warnings for IAR compiler.
+ */
+/* http://supp.iar.com/Support/?note=24725 */
+
+#define MISRAC_DISABLE \
+ _Pragma( \
+ "diag_suppress= \
+ Pm001,Pm002,Pm003,Pm004,Pm005,Pm006,Pm007,Pm008,Pm009,Pm010,Pm011,\
+ Pm012,Pm013,Pm014,Pm015,Pm016,Pm017,Pm018,Pm019,Pm020,Pm021,Pm022,\
+ Pm023,Pm024,Pm025,Pm026,Pm027,Pm028,Pm029,Pm030,Pm031,Pm032,Pm033,\
+ Pm034,Pm035,Pm036,Pm037,Pm038,Pm039,Pm040,Pm041,Pm042,Pm043,Pm044,\
+ Pm045,Pm046,Pm047,Pm048,Pm049,Pm050,Pm051,Pm052,Pm053,Pm054,Pm055,\
+ Pm056,Pm057,Pm058,Pm059,Pm060,Pm061,Pm062,Pm063,Pm064,Pm065,Pm066,\
+ Pm067,Pm068,Pm069,Pm070,Pm071,Pm072,Pm073,Pm074,Pm075,Pm076,Pm077,\
+ Pm078,Pm079,Pm080,Pm081,Pm082,Pm083,Pm084,Pm085,Pm086,Pm087,Pm088,\
+ Pm089,Pm090,Pm091,Pm092,Pm093,Pm094,Pm095,Pm096,Pm097,Pm098,Pm099,\
+ Pm100,Pm101,Pm102,Pm103,Pm104,Pm105,Pm106,Pm107,Pm108,Pm109,Pm110,\
+ Pm111,Pm112,Pm113,Pm114,Pm115,Pm116,Pm117,Pm118,Pm119,Pm120,Pm121,\
+ Pm122,Pm123,Pm124,Pm125,Pm126,Pm127,Pm128,Pm129,Pm130,Pm131,Pm132,\
+ Pm133,Pm134,Pm135,Pm136,Pm137,Pm138,Pm139,Pm140,Pm141,Pm142,Pm143,\
+ Pm144,Pm145,Pm146,Pm147,Pm148,Pm149,Pm150,Pm151,Pm152,Pm153,Pm154,\
+ Pm155")
+
+#define MISRAC_ENABLE \
+ _Pragma( \
+ "diag_default= \
+ Pm001,Pm002,Pm003,Pm004,Pm005,Pm006,Pm007,Pm008,Pm009,Pm010,Pm011,\
+ Pm012,Pm013,Pm014,Pm015,Pm016,Pm017,Pm018,Pm019,Pm020,Pm021,Pm022,\
+ Pm023,Pm024,Pm025,Pm026,Pm027,Pm028,Pm029,Pm030,Pm031,Pm032,Pm033,\
+ Pm034,Pm035,Pm036,Pm037,Pm038,Pm039,Pm040,Pm041,Pm042,Pm043,Pm044,\
+ Pm045,Pm046,Pm047,Pm048,Pm049,Pm050,Pm051,Pm052,Pm053,Pm054,Pm055,\
+ Pm056,Pm057,Pm058,Pm059,Pm060,Pm061,Pm062,Pm063,Pm064,Pm065,Pm066,\
+ Pm067,Pm068,Pm069,Pm070,Pm071,Pm072,Pm073,Pm074,Pm075,Pm076,Pm077,\
+ Pm078,Pm079,Pm080,Pm081,Pm082,Pm083,Pm084,Pm085,Pm086,Pm087,Pm088,\
+ Pm089,Pm090,Pm091,Pm092,Pm093,Pm094,Pm095,Pm096,Pm097,Pm098,Pm099,\
+ Pm100,Pm101,Pm102,Pm103,Pm104,Pm105,Pm106,Pm107,Pm108,Pm109,Pm110,\
+ Pm111,Pm112,Pm113,Pm114,Pm115,Pm116,Pm117,Pm118,Pm119,Pm120,Pm121,\
+ Pm122,Pm123,Pm124,Pm125,Pm126,Pm127,Pm128,Pm129,Pm130,Pm131,Pm132,\
+ Pm133,Pm134,Pm135,Pm136,Pm137,Pm138,Pm139,Pm140,Pm141,Pm142,Pm143,\
+ Pm144,Pm145,Pm146,Pm147,Pm148,Pm149,Pm150,Pm151,Pm152,Pm153,Pm154,\
+ Pm155")
+#else
+/* Empty MISRA C macros for other toolchains. */
+#define MISRAC_DISABLE
+#define MISRAC_ENABLE
+#endif
+
+MISRAC_DISABLE
+#include "FreeRTOS.h"
+#include "semphr.h"
+#include "event_groups.h"
+MISRAC_ENABLE
+
+/*!
+ * @addtogroup os_abstraction_free_rtos
+ * @{
+ */
+
+/*******************************************************************************
+ * Declarations
+ ******************************************************************************/
+/*! @brief Type for a task handler, returned by the OSA_TaskCreate function. */
+typedef TaskHandle_t task_handler_t;
+
+/*! @brief Type for a task stack.*/
+typedef portSTACK_TYPE task_stack_t;
+
+/*! @brief Type for task parameter */
+typedef void *task_param_t;
+
+/*! @brief Type for an event flags object.*/
+typedef EventBits_t event_flags_t;
+
+/*! @brief Constant to pass as timeout value in order to wait indefinitely. */
+#define OSA_WAIT_FOREVER 0xFFFFFFFFU
+
+/*! @brief OSA's time range in millisecond, OSA time wraps if exceeds this value. */
+#define FSL_OSA_TIME_RANGE 0xFFFFFFFFU
+
+/*! @brief The default interrupt handler installed in vector table. */
+#define OSA_DEFAULT_INT_HANDLER ((osa_int_handler_t)(&DefaultISR))
+
+extern void DefaultISR(void);
+
+/*!
+ * @name Thread management
+ * @{
+ */
+
+/*!
+ * @brief To provide unified task piority for upper layer, OSA layer makes conversion.
+ */
+#define PRIORITY_OSA_TO_RTOS(osa_prio) \
+ (((UBaseType_t)configMAX_PRIORITIES - 1U) * (OSA_TASK_PRIORITY_MIN - osa_prio) / OSA_TASK_PRIORITY_MIN)
+#define PRIORITY_RTOS_TO_OSA(rtos_prio) \
+ (OSA_TASK_PRIORITY_MIN * (((UBaseType_t)configMAX_PRIORITIES - 1U) - rtos_prio) / \
+ ((UBaseType_t)configMAX_PRIORITIES - 1U))
+
+/* @}*/
+
+/*!
+ * @name Message queues
+ * @{
+ */
+
+/*!
+ * @brief This macro statically reserves the memory required for the queue.
+ *
+ * @param name Identifier for the memory region.
+ * @param number Number of elements in the queue.
+ * @param size Size of every elements in words.
+ */
+#define MSG_QUEUE_DECLARE(name, number, size) msg_queue_t *name = NULL
+
+/* @}*/
+
+/*! @}*/
+/*! @}*/
+/*! @}*/
+
+#endif /* __FSL_OS_ABSTRACTION_FREERTOS_H__ */
diff --git a/third-party/fsl_sdmmc/osa/fsl_sdmmc_osa.c b/third-party/fsl_sdmmc/osa/fsl_sdmmc_osa.c
new file mode 100644
index 0000000000000000000000000000000000000000..bb1e6ba9bfbd1a6fa734ae4f3ffdfd01cee6e918
--- /dev/null
+++ b/third-party/fsl_sdmmc/osa/fsl_sdmmc_osa.c
@@ -0,0 +1,319 @@
+/*
+ * Copyright 2020 NXP
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include "fsl_sdmmc_osa.h"
+#include "fsleep.h"
+#include "fmemory_pool.h"
+
+/*******************************************************************************
+ * Definitons
+ ******************************************************************************/
+#define SDMMC_MEM_BUF_SIZE SZ_1M
+/*******************************************************************************
+ * Prototypes
+ ******************************************************************************/
+
+/*******************************************************************************
+ * Variables
+ ******************************************************************************/
+static uint8_t sdmmc_buf[SDMMC_MEM_BUF_SIZE] __attribute__((aligned(4096))) = {0};
+static FMemp sdmmc_mem_pool;
+/*******************************************************************************
+ * Code
+ ******************************************************************************/
+/*!
+ * brief Initialize OSA.
+ */
+void SDMMC_OSAInit(void)
+{
+ memset(&sdmmc_mem_pool, 0, sizeof(sdmmc_mem_pool));
+
+ FError result = FMempInit(&sdmmc_mem_pool, sdmmc_buf, sdmmc_buf + SDMMC_MEM_BUF_SIZE); /* init memory pool */
+ assert(result == FMEMP_SUCCESS);
+}
+
+/*!
+ * brief De-Initialize OSA.
+ */
+void SDMMC_OSADeInit(void)
+{
+ assert(FT_COMPONENT_IS_READY == sdmmc_mem_pool.is_ready);
+ FMempDeinit(&sdmmc_mem_pool);
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : SDMMC_OSAMemoryAllocate
+ * Description : Reserves the requested amount of memory in bytes.
+ *
+ *END**************************************************************************/
+void *SDMMC_OSAMemoryAllocate(uint32_t length)
+{
+ assert(FT_COMPONENT_IS_READY == sdmmc_mem_pool.is_ready);
+ void *p = FMempMallocAlign(&sdmmc_mem_pool, length, sizeof(uintptr_t));
+ return p;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : SDMMC_OSAMemoryAllocate
+ * Description : Reserves the requested amount of memory in bytes.
+ *
+ *END**************************************************************************/
+void *SDMMC_OSAMemoryAlignedAllocate(uint32_t length, uint32_t align)
+{
+ assert(FT_COMPONENT_IS_READY == sdmmc_mem_pool.is_ready);
+ void *p = FMempMallocAlign(&sdmmc_mem_pool, length, align);
+ return p;
+}
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : SDMMC_OSAMemoryFree
+ * Description : Frees the memory previously reserved.
+ *
+ *END**************************************************************************/
+void SDMMC_OSAMemoryFree(void *p)
+{
+ assert(FT_COMPONENT_IS_READY == sdmmc_mem_pool.is_ready);
+ FMempFree(&sdmmc_mem_pool, p);
+}
+
+/*!
+ * brief OSA Create event.
+ * param event handle.
+ * retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAEventCreate(void *eventHandle)
+{
+ assert(eventHandle != NULL);
+
+#if defined(SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE) && SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE
+ (void)OSA_SemaphoreCreate(&(((sdmmc_osa_event_t *)eventHandle)->handle), 0U);
+#else
+ (void)OSA_EventCreate(&(((sdmmc_osa_event_t *)eventHandle)->handle), true);
+#endif
+
+ return kStatus_Success;
+}
+
+/*!
+ * brief Wait event.
+ *
+ * param eventHandle The event type
+ * param eventType Timeout time in milliseconds.
+ * param timeoutMilliseconds timeout value in ms.
+ * param event event flags.
+ * retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAEventWait(void *eventHandle, uint32_t eventType, uint32_t timeoutMilliseconds, uint32_t *event)
+{
+ assert(eventHandle != NULL);
+
+ osa_status_t status = KOSA_StatusError;
+
+#if defined(SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE) && SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE
+ while (true)
+ {
+ status = OSA_SemaphoreWait(&(((sdmmc_osa_event_t *)eventHandle)->handle), timeoutMilliseconds);
+ if (KOSA_StatusTimeout == status)
+ {
+ break;
+ }
+
+ if (KOSA_StatusSuccess == status)
+ {
+ (void)SDMMC_OSAEventGet(eventHandle, eventType, event);
+ if ((*event & eventType) != 0U)
+ {
+ return kStatus_Success;
+ }
+ }
+ }
+
+#else
+ while (true)
+ {
+ status = OSA_EventWait(&(((sdmmc_osa_event_t *)eventHandle)->handle), eventType, 0, timeoutMilliseconds, event);
+ if ((KOSA_StatusSuccess == status) || (KOSA_StatusTimeout == status))
+ {
+ break;
+ }
+ }
+
+ if (KOSA_StatusSuccess == status)
+ {
+ return kStatus_Success;
+ }
+#endif
+
+ return kStatus_Fail;
+}
+
+/*!
+ * brief set event.
+ * param event event handle.
+ * param eventType The event type
+ * retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAEventSet(void *eventHandle, uint32_t eventType)
+{
+ assert(eventHandle != NULL);
+
+#if defined(SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE) && SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE
+ OSA_SR_ALLOC();
+ OSA_ENTER_CRITICAL();
+ ((sdmmc_osa_event_t *)eventHandle)->eventFlag |= eventType;
+ OSA_EXIT_CRITICAL();
+
+ (void)OSA_SemaphorePost(&(((sdmmc_osa_event_t *)eventHandle)->handle));
+#else
+ (void)OSA_EventSet(&(((sdmmc_osa_event_t *)eventHandle)->handle), eventType);
+#endif
+
+ return kStatus_Success;
+}
+
+/*!
+ * brief Get event flag.
+ * param eventHandle event handle.
+ * param eventType The event type
+ * param flag pointer to store event value.
+ * retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAEventGet(void *eventHandle, uint32_t eventType, uint32_t *flag)
+{
+ assert(eventHandle != NULL);
+ assert(flag != NULL);
+
+#if defined(SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE) && SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE
+ *flag = ((sdmmc_osa_event_t *)eventHandle)->eventFlag;
+#else
+ (void)OSA_EventGet(&(((sdmmc_osa_event_t *)eventHandle)->handle), eventType, flag);
+#endif
+
+ return kStatus_Success;
+}
+
+/*!
+ * brief clear event flag.
+ * param eventHandle event handle.
+ * param eventType The event type
+ * retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAEventClear(void *eventHandle, uint32_t eventType)
+{
+ assert(eventHandle != NULL);
+
+#if defined(SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE) && SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE
+ OSA_SR_ALLOC();
+ OSA_ENTER_CRITICAL();
+ ((sdmmc_osa_event_t *)eventHandle)->eventFlag &= ~eventType;
+ OSA_EXIT_CRITICAL();
+#else
+ (void)OSA_EventClear(&(((sdmmc_osa_event_t *)eventHandle)->handle), eventType);
+#endif
+
+ return kStatus_Success;
+}
+
+/*!
+ * brief Delete event.
+ * param event The event handle.
+ */
+status_t SDMMC_OSAEventDestroy(void *eventHandle)
+{
+ assert(eventHandle != NULL);
+
+#if defined(SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE) && SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE
+ (void)OSA_SemaphoreDestroy(&(((sdmmc_osa_event_t *)eventHandle)->handle));
+#else
+ (void)OSA_EventDestroy(&(((sdmmc_osa_event_t *)eventHandle)->handle));
+#endif
+
+ return kStatus_Success;
+}
+
+/*!
+ * brief Create a mutex.
+ * param mutexHandle mutex handle.
+ * retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAMutexCreate(void *mutexHandle)
+{
+ assert(mutexHandle != NULL);
+
+ (void)OSA_MutexCreate(&((sdmmc_osa_mutex_t *)mutexHandle)->handle);
+
+ return kStatus_Success;
+}
+
+/*!
+ * brief set event.
+ * param mutexHandle mutex handle.
+ * param millisec The maximum number of milliseconds to wait for the mutex.
+ * If the mutex is locked, Pass the value osaWaitForever_c will
+ * wait indefinitely, pass 0 will return KOSA_StatusTimeout
+ * immediately.
+ * retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAMutexLock(void *mutexHandle, uint32_t millisec)
+{
+ assert(mutexHandle != NULL);
+
+ (void)OSA_MutexLock(&((sdmmc_osa_mutex_t *)mutexHandle)->handle, millisec);
+
+ return kStatus_Success;
+}
+
+/*!
+ * brief Get event flag.
+ * param mutexHandle mutex handle.
+ * retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAMutexUnlock(void *mutexHandle)
+{
+ assert(mutexHandle != NULL);
+
+ (void)OSA_MutexUnlock(&((sdmmc_osa_mutex_t *)mutexHandle)->handle);
+
+ return kStatus_Success;
+}
+
+/*!
+ * brief Delete mutex.
+ * param mutexHandle The mutex handle.
+ */
+status_t SDMMC_OSAMutexDestroy(void *mutexHandle)
+{
+ assert(mutexHandle != NULL);
+
+ (void)OSA_MutexDestroy(&((sdmmc_osa_mutex_t *)mutexHandle)->handle);
+
+ return kStatus_Success;
+}
+
+/*!
+ * brief sdmmc delay.
+ * param milliseconds time to delay
+ */
+void SDMMC_OSADelay(uint32_t milliseconds)
+{
+ vTaskDelay(pdMS_TO_TICKS(milliseconds));
+}
+
+/*!
+ * brief sdmmc delay us.
+ * param microseconds time to delay
+ * return actual delayed microseconds
+ */
+uint32_t SDMMC_OSADelayUs(uint32_t microseconds)
+{
+ vTaskDelay(10U);
+ //fsleep_microsec(microseconds);
+ return 0;
+}
diff --git a/third-party/fsl_sdmmc/osa/fsl_sdmmc_osa.h b/third-party/fsl_sdmmc/osa/fsl_sdmmc_osa.h
new file mode 100644
index 0000000000000000000000000000000000000000..b22bf368be50db478c3baaeaacdb9dc9b16b61a2
--- /dev/null
+++ b/third-party/fsl_sdmmc/osa/fsl_sdmmc_osa.h
@@ -0,0 +1,190 @@
+/*
+ * Copyright 2020 NXP
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef _FSL_SDMMC_OSA_H_
+#define _FSL_SDMMC_OSA_H_
+
+#include "fsl_common.h"
+#include "fsl_os_abstraction.h"
+
+/*!
+ * @addtogroup sdmmc_osa SDMMC OSA
+ * @ingroup card
+ * @{
+ */
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+/*!@brief transfer event */
+#define SDMMC_OSA_EVENT_TRANSFER_CMD_SUCCESS (1UL << 0U)
+#define SDMMC_OSA_EVENT_TRANSFER_CMD_FAIL (1UL << 1U)
+#define SDMMC_OSA_EVENT_TRANSFER_DATA_SUCCESS (1UL << 2U)
+#define SDMMC_OSA_EVENT_TRANSFER_DATA_FAIL (1UL << 3U)
+#define SDMMC_OSA_EVENT_TRANSFER_DMA_COMPLETE (1UL << 4U)
+
+/*!@brief card detect event, start from index 8 */
+#define SDMMC_OSA_EVENT_CARD_INSERTED (1UL << 8U)
+#define SDMMC_OSA_EVENT_CARD_REMOVED (1UL << 9U)
+
+/*!@brief enable semphore by default */
+#ifndef SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE
+#define SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE 1
+#endif
+
+/*!@brief sdmmc osa event */
+typedef struct _sdmmc_osa_event
+{
+#if defined(SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE) && SDMMC_OSA_POLLING_EVENT_BY_SEMPHORE
+ volatile uint32_t eventFlag;
+ OSA_SEMAPHORE_HANDLE_DEFINE(handle);
+#else
+ OSA_EVENT_HANDLE_DEFINE(handle);
+#endif
+} sdmmc_osa_event_t;
+
+/*!@brief sdmmc osa mutex */
+typedef struct _sdmmc_osa_mutex
+{
+ OSA_MUTEX_HANDLE_DEFINE(handle);
+} sdmmc_osa_mutex_t;
+/*******************************************************************************
+ * API
+ ******************************************************************************/
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+/*!
+ * @name sdmmc osa Function
+ * @{
+ */
+
+/*!
+ * @brief Initialize OSA.
+ */
+void SDMMC_OSAInit(void);
+
+/*!
+ * @brief De-Initialize OSA.
+ */
+void SDMMC_OSADeInit(void);
+
+/*!
+ * @brief OSA Allocate memory
+ */
+void *SDMMC_OSAMemoryAllocate(uint32_t length);
+
+/*!
+ * @brief OSA Allocate aligned memory
+ */
+void *SDMMC_OSAMemoryAlignedAllocate(uint32_t length, uint32_t align);
+
+/*!
+ * @brief OSA Free allocated memory
+ */
+void SDMMC_OSAMemoryFree(void *p);
+
+/*!
+ * @brief OSA Create event.
+ * @param eventHandle event handle.
+ * @retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAEventCreate(void *eventHandle);
+
+/*!
+ * @brief Wait event.
+ *
+ * @param eventHandle The event type
+ * @param eventType Timeout time in milliseconds.
+ * @param timeoutMilliseconds timeout value in ms.
+ * @param event event flags.
+ * @retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAEventWait(void *eventHandle, uint32_t eventType, uint32_t timeoutMilliseconds, uint32_t *event);
+
+/*!
+ * @brief set event.
+ * @param eventHandle event handle.
+ * @param eventType The event type
+ * @retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAEventSet(void *eventHandle, uint32_t eventType);
+
+/*!
+ * @brief Get event flag.
+ * @param eventHandle event handle.
+ * @param eventType event type.
+ * @param flag pointer to store event value.
+ * @retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAEventGet(void *eventHandle, uint32_t eventType, uint32_t *flag);
+
+/*!
+ * @brief clear event flag.
+ * @param eventHandle event handle.
+ * @param eventType The event type
+ * @retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAEventClear(void *eventHandle, uint32_t eventType);
+
+/*!
+ * @brief Delete event.
+ * @param eventHandle The event handle.
+ */
+status_t SDMMC_OSAEventDestroy(void *eventHandle);
+
+/*!
+ * @brief Create a mutex.
+ * @param mutexHandle mutex handle.
+ * @retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAMutexCreate(void *mutexHandle);
+
+/*!
+ * @brief set event.
+ * @param mutexHandle mutex handle.
+ * @param millisec The maximum number of milliseconds to wait for the mutex.
+ * If the mutex is locked, Pass the value osaWaitForever_c will
+ * wait indefinitely, pass 0 will return KOSA_StatusTimeout
+ * immediately.
+ * @retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAMutexLock(void *mutexHandle, uint32_t millisec);
+
+/*!
+ * @brief Get event flag.
+ * @param mutexHandle mutex handle.
+ * @retval kStatus_Fail or kStatus_Success.
+ */
+status_t SDMMC_OSAMutexUnlock(void *mutexHandle);
+
+/*!
+ * @brief Delete mutex.
+ * @param mutexHandle The mutex handle.
+ */
+status_t SDMMC_OSAMutexDestroy(void *mutexHandle);
+
+/*!
+ * @brief sdmmc delay.
+ * @param milliseconds time to delay
+ */
+void SDMMC_OSADelay(uint32_t milliseconds);
+
+/*!
+ * @brief sdmmc delay us.
+ * @param microseconds time to delay
+ * @return actual delayed microseconds
+ */
+uint32_t SDMMC_OSADelayUs(uint32_t microseconds);
+
+/* @} */
+
+#if defined(__cplusplus)
+}
+#endif
+/* @} */
+#endif /* _FSL_SDMMC_OSA_H_*/
diff --git a/third-party/fsl_sdmmc/src.mk b/third-party/fsl_sdmmc/src.mk
new file mode 100644
index 0000000000000000000000000000000000000000..724ecc97aec63faf6326aac11dc1ca1d370ddd89
--- /dev/null
+++ b/third-party/fsl_sdmmc/src.mk
@@ -0,0 +1,35 @@
+FSL_SDMMC_OS_DIR := $(FREERTOS_SDK_DIR)/third-party/fsl_sdmmc
+FSL_SDMMC_BM_DIR := $(SDK_DIR)/third-party/fsl_sdmmc
+
+ABSOLUTE_CFILES += $(wildcard $(FSL_SDMMC_BM_DIR)/common/*.c) \
+ $(wildcard $(FSL_SDMMC_BM_DIR)/host/*.c) \
+ $(wildcard $(FSL_SDMMC_BM_DIR)/partition/*.c)
+
+ifdef CONFIG_USE_FREERTOS
+ABSOLUTE_CFILES += $(wildcard $(FSL_SDMMC_OS_DIR)/osa/*.c)
+endif
+
+ifdef CONFIG_FSL_SDMMC_USE_FSDIF
+ABSOLUTE_CFILES += $(wildcard $(FSL_SDMMC_BM_DIR)/host/fsdif/*.c)
+endif
+
+ifdef CONFIG_FSL_SDMMC_USE_FSDMMC
+ABSOLUTE_CFILES += $(wildcard $(FSL_SDMMC_BM_DIR)/host/fsdmmc/*.c)
+endif
+
+ifdef CONFIG_FSL_SDMMC_ENABLE_SD
+ABSOLUTE_CFILES += $(wildcard $(FSL_SDMMC_BM_DIR)/sd/*.c)
+endif
+
+ifdef CONFIG_FSL_SDMMC_ENABLE_MMC
+ABSOLUTE_CFILES += $(wildcard $(FSL_SDMMC_BM_DIR)/mmc/*.c)
+endif
+
+ifdef CONFIG_FSL_SDMMC_ENABLE_SDIO
+ABSOLUTE_CFILES += $(wildcard $(FSL_SDMMC_BM_DIR)/sdio/*.c)
+endif
+
+ifdef CONFIG_FSL_SDMMC_ENABLE_SD_SPI
+ABSOLUTE_CFILES += $(wildcard $(FSL_SDMMC_BM_DIR)/sdspi/*.c)
+endif
+
diff --git a/third-party/fsl_wifi/COPYING-BSD-3 b/third-party/fsl_wifi/COPYING-BSD-3
new file mode 100644
index 0000000000000000000000000000000000000000..53cd63ca8b2f4c7efdd639d869ab3b23f4297bf9
--- /dev/null
+++ b/third-party/fsl_wifi/COPYING-BSD-3
@@ -0,0 +1,34 @@
+The BSD 3 Clause License
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors
+may be used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/third-party/fsl_wifi/ChangeLogKSDK.txt b/third-party/fsl_wifi/ChangeLogKSDK.txt
new file mode 100644
index 0000000000000000000000000000000000000000..41cf42f9f88808bc2705eefefb5ed6760059209a
--- /dev/null
+++ b/third-party/fsl_wifi/ChangeLogKSDK.txt
@@ -0,0 +1,482 @@
+/*!
+@page middleware_log Middleware Change Log
+
+@section wifi NXP WiFi
+
+Version 1.3.r41.p2
+ -New Additions:
+ - Updated license header as a github friendly license.
+ - Added 8801 SoC firmware p177 with get Coex Statistics support.
+ - Added 8987 SoC firmware p32.2 with Bluetooth related fixes. Added fix for automatic ble disconnect issue.
+
+ -Bug Fixes:
+ - Fixed Unable to start/stop 11n rx reorder timer(50%).
+ - Fixed Getting Improper Channel Number in "wlan-get-uap-channel" command.
+ - Fixed DUT fails to start DHCP intermittently.
+ - Fixed wrong wlan-list output.
+ - Fixed station connect issue after host sleep is enabled and disabled.
+ - Fixed Misra and coverity issues.
+ - Fixed automatic ble disconnect issue after 30 seconds of connection establishment.
+
+Version 1.3.r41.p1
+ -Bug Fixes:
+ - Updated 8801 SoC firmware to toggle GRANT Pin with WLAN/BT time on HIGH Request with Low Priority.
+ - Added coverity fixes.
+
+Version 1.3.r40.p5
+ -Bug Fixes:
+ - Fixed issue of DUT not entering Powersave mode on all SoCs.
+
+Version 1.3.r40.p4
+ -Bug Fixes:
+ - Default bandwidth set to 20 MHz for uAP on 8977.
+ - Fixed an issue in static IPv4 address assignment.
+ - Fixed warning and errors for IAR, MDK and gn + ninja + armgcc toolchains.
+
+Version 1.3.r40.p3
+ -Bug Fixes:
+ - Added wlan_uap_set_httxcfg API to set 40 MHz support in 2.4 GHz.
+ - Fix for build issue seen for wifi_setup 1020
+
+Version 1.3.r40.p2
+ -Bug Fixes:
+ - Fixed IPv6 address and state updates as per the networking stack configuration.
+ - Removed errors shown in channel validation and in setting custom CFP tables
+ - Added API to support selection of 20 and 40 MHz bandwidth
+ - Added -b(bandwidth) option in wifi_cli iperf command
+ - DHCP client doesn't report the failure of obtaining IP address
+ - Remove dependency for wifi_config_internal.h
+ - Remove warnings reported for channel list variables
+ - Fix STA not sending data in 40M bandwidth for BGN 40 in 2.4G
+
+Version 1.3.r38.p2
+ - New Additions:
+ - Added Support for IPv6.
+ - Added support for Hostsleep and packet filters.
+ - Updated Firecrest Firmware version to p50.5.
+ - Updated CA2 Firmware version to p21.22.
+
+ -Bug Fixes:
+ - Fixed an issue where DUT not able to start UAP Network in 2G MMH Mode.
+ - Fixed an issue where Command 0xb2 timeout is seen when stopped uAP while running DL traffic.
+
+Version 1.3.r37.p4
+ - New Additions:
+ - Added support for new API for HostCmd in RT Platform.
+ - Added provision to set tx rates for HE mode in wlan_set_txratecfg API.
+ - Added support for new command to set tx OMI.
+ - Added WPA3 R3 support for 8801, RB3, RB3+ and CA2.
+ - Updated Firecrest firmware version to p50.2.
+ - Updated CA2 firmware version to p235.2
+ - Updated RB3+ firmware version to p11.3.
+ - Updated 8801 firmware version to p191.2
+ - Updated RB3 firmware version to p186.2.
+
+ - Bug Fixes:
+ - Fixed an issue where default netif was not set to STA after closing uAP.
+ - Fixed an issue where 30% low RX throughput was seen with 11AN 40Mhz.
+ - Fixed wlan_start and wlan_stop API working.
+ - Fixed High ping latency when DUT is put in IEEEPS mode.
+ - Fixed an issue where wlan_get_dtim_period API was not returning any value.
+ - Fixed SVD vulnerability issue on RB3+.
+ - Fixed MISRA/Coverity issues.
+ - Fixed SVD vulnerability issue on 8977, 8801 and CA2.
+ - Fixed an issue in Firecrest where STAUT is disconnecting immediately after ieeeps command is fired.
+ - Fixed an issue where UDP traffic was not working on uAP mode.
+ - Country code not being displayed in 11d is being fixed
+
+Version 1.3.r35.p2
+ - New Additions:
+ - Added support for 11ax for Firecrest.
+ - Updated Firecrest firmware version to p27.
+
+ - Bug Fixes:
+ - Fixed an issue for CA2 where tcp/udp Rx traffic was not seen with Linksys AP.
+ - Fixed tx power limit issue for Firecrest.
+ - Fixed an issue for Firecrest where Ping stops working after TCP traffic is started from DUT.
+ - Changed WLAN_PSK_MAX_LENGTH to 64 from 65.
+ - Fixed an issue where mfpc was not set properly.
+
+Version 1.3.r34.p2
+ - New Additions:
+ - Updated CA2(8987) SoC firmware to p235.1.
+
+ - Bug Fixes:
+ - Fixed WPA3 Authentication failure for CA2.
+ - Fixed SPP connection issue.
+
+version 1.3.r34.p1
+ - New Additions:
+ - Updated CA2(8987) SoC firmware to p235.
+ - Added Separation of fw download from Wi-Fi initialization.
+ - Added support for Multicast group creation
+ - Updated license content in the wlan src for Murata or Generic customer.
+ - Added support for new firmware version display.
+ - Added config Macro for disabling Rx SDIO aggregation. This is enabled by default.
+
+ - Bug Fixes:
+ - Fixed CH 144 connection issue.
+
+version 1.3.r33.p2
+ - New Additions:
+ - Updated RB3+(8978) SoC firmware to p214.
+ - Updated CA2(8987) SoC firmware to p200.
+
+ - Bug Fixes:
+ - Fixed an issue where, wifi connection was failing during BLE activity.
+ - Fixed an issue where a2dp profile app could not find a2dp sink device.
+
+
+version 1.3.r32.p5
+ - New Additions:
+ - Updated RB3+(8978) SoC firmware to p198.
+ - Updated CA2(8987) SoC firmware to p199.
+
+ - Bug Fixes:
+ - Fixed an issue where BT pairing auth failure was observed between two 8987
+ or two IW416 devices due to same DH Public Key being generated.
+
+version 1.3.r32.p4
+ - New Additions:
+ - Updated RB3+(8978) SoC firmware to p197.
+
+ - Bug Fixes:
+ - Fixed an issue where, in presence of WLAN, BT A2DP SNK scenario can observe continuous glitches because
+ of BT utilizing the WLAN overlapping channels.
+ - Fixed an issue where, in presence of BT A2DP SRC scenario and WLAN traffic, both will share air-time.
+ WLAN Rx TP can drop to 15-20% of its baseline because of A2DP occupying more air-time duty cycle.
+
+version 1.3.r32.p3
+ - New Additions:
+ - Updated RB3+(8978) SoC firmware to p196.
+ - Updated CA2(8987) SoC firmware to p162.
+ - Updated RB3(8977) SoC firmware to p186.
+ - Updated Falcon(8801) SoC firmware to p191.
+
+ - Bug Fixes:
+ - Fixed an issue where STAUT was not advertising extended capabilities in assoc request
+ - Fixed an issue where cal data download API is not setting the cal data
+ correctly.
+ - Fixed an issue where Ping of 10000 bytes is not workingfor WMM case with 11n/11ac pre-cert WFA testbed AP's.
+ - VU FFD(vulnerability) fixes have been made for CA2(8987)/RB3+(8978)/RB3(8977)/Falcon(8801).
+
+version 1.3.r31.p1
+ - New Additions:
+ - Updated RB3+(8978) SoC firmware to p152.
+ - Updated CA2(8987) SoC firmware to p152.
+ - Added WMM feature for 8987 SoC
+ -Updates
+ - Enabled wifi deep sleep and IEEEPS modes as part of CLI initialisation.
+ - Updated module macro for CA2 from WIFI_BOARD_AW_CM358MA to WIFI_BOARD_AW_CM358.
+ - Bug Fixes:
+ - Fixed deepsleep error when called immediately after disconnection
+ - Fixed an issue where uAP was not turned on when country is specified using wlan_set_country API.
+
+version 1.3.r30.p2
+ - New Additions:
+ - Updated 8978 SoC firmware to p185.
+ - Updated 8987 SoC firmware to p185.
+ - Bug Fixes:
+ - Fixed a regression issue in WiFi FW where Ex-client is not able to associate with uAP on 8978 and 8987 SoC.
+
+version 1.3.r30.p1
+ - New Additions:
+ - Updated RB3+(8978) SoC firmware to p145.
+ - Updated CA2(8987) SoC firmware to p145.
+ - Bug Fixes:
+ - Fixed MISRA C-2012 Rule 14.4 issues.
+ - Updated TX Power configuration table for uAP.
+ - Fixed an issue where in MFG mode measured TX power value for 2.4GHz is 10.97dBm
+ and for 5GHz is 12.03dBm always irrespective of TX-power values configured in CA2.
+ - Fixed an issue where in control frames measured TX power is less than configured
+ Tx power by 3dBm for 5Ghz 40Mhz BW and ~7dBm for 5Ghz 80Mhz BW in CA2.
+
+version 1.3.r29.p2
+ - New Additions:
+ - Updated 8987 SoC firmware to p142.
+ - Updated 8978 SoC firmware to p142.
+ - Bug Fixes:
+ - Fixed MISRA C-2012 Directive 4.7, Directive 4.10, Rule 15.7 and Rule 14.4 issues
+ - Fixed wlan_get_sta_tx_power() API implementation for retrieving station tx power level.
+ - Fixed wlan-set/get-txpwrlimit CLI command for setting/getting TX power
+ limit for 11AC modulation groups in 8987.
+ - Fixed an issue where in MFG mode(rf_test_mode=1) after disabling
+ wlan_set_rf_cont_mode(CMD18_CW=1) command response timeout is seen in 8987.
+
+version 1.3.r29.p1
+ - New Additions:
+ - Added support for 8987 SoC with p141 firmware version.
+ - Updated 8978 SoC firmware to p141.
+ - Bug Fixes:
+ - Fixed Misra C-2012 required category issues for Rule 17.7.
+ - Fixes for BCA-TDM in Co-Ex for 8978 SoC.
+ - Fixed A2DP glitches in BT when WLAN connected for 8978 SoC.
+
+version 1.3.r27.p2
+ - New Additions:
+ - Updated FW versions to p130 for 8978.
+
+version 1.3.r27.p1
+
+ - Bug Fixes:
+ - Fixed PMF pre-cert issue where STAUT is not associating to PSK-SHA-256 enabled AP.
+ - Fixed 11N pre-cert issue where 11N-5.2.47 STAUT AMPDU TX test case is failing.
+
+version 1.3.r26.p2
+
+ - New Additions:
+ - Updated FW versions to p184 for 8977 and p122 FW for 8978.
+ - Added wifi_cert application under wifi_examples.
+
+ - Bug Fixes:
+ - Fixed an issue where connection problem is seen with uAP in wifi_webconfig after removing stored credentials.
+ - Fixed RF Test Mode issue for setting data rate in uAP mode.
+ - Fixed Coverity and MISRA issues in WiFi Driver.
+ - Fixed WPA3 SAE pre-cert requirement where there was requirement of Auth confirm to be initiated by either STA or Ex-AP.
+ - Removed following API's from WiFi driver as they were not supported:
+ - wifi_auto_reconnect_enable()
+ - wifi_auto_reconnect_disable()
+ - wifi_get_auto_reconnect_config()
+ - wifi_get_tbtt_offset()
+ - wifi_set_packet_filters()
+ - wifi_set_auto_arp()
+ - wifi_tcp_keep_alive()
+ - wifi_nat_keep_alive()
+
+version 1.3.r23.p2
+
+ - New Additions:
+ - Minor update to wifi_test_mode CLIs for better usability.
+ - Added bug fixes in WiFi FW and updated FW versions to p155 for 8801, p182 for 8977 and p106 for 8978.
+ - Added new wlan_uap_set_htcapinfo() API for setting HT Capability field for uAP.
+
+ - Bug Fixes:
+ - Fixed RF Test Mode issues for SD8801 and SD8977 reported by QA.
+ - Fixed WiFi 802.11n WPA3 SAE pre-cert test failures for SD8978.
+ - Fixed stack overflow issue with WLCMGR thread during wlan-connect.
+ - Fixed memory corruption issue cause by scan list overflow when using 11D.
+
+version 1.3.r21.p1
+
+ - New Additions:
+ - Added support for SD8978.
+ - Added Test Mode support for 8801, 8977 and 8978.
+ - Added new FW binaries for 8801, 8977 and 8978.
+ - Added OTP Force Region support in WiFi Driver.
+ - Added support for DHCP Server CLI to print IP addresses of connected clients to uAP.
+ - Added support to set HT Capability field for uAP.
+ - Added wlan_get_chanlist API and CLI.
+ - Added WiFi Driver task priority configurability option.
+ - Reduced WiFi Driver SRAM footprint.
+ - Added support in Wi-Fi driver to print debug events from WLAN FW.
+ - Added support for FW Dump generation using a micro-USB mass storage device.
+
+ - Bug Fixes:
+ - Fixed an issue where a redundant Link Loss disconnect timer was defined in the wifi_iperf app.
+ - Fixed an issue where sometimes the wlan_disconnect call did not abort an ongoing re-association.
+ - Fixed an issue where station connection to an Open security Ext-AP fails after connection to a WPA3-SAE Ext-AP.
+ - Fixed an issue where uAP did not start with WPA3-SAE security type.
+
+ - Known Issues
+ - Wi-Fi sample apps do not work with Rev-C (2018) version of RT685 board
+
+version 1.3.r20.p1
+
+ - New Additions:
+ - Added new FW for 8801.
+
+ - Bug Fixes:
+ - Fixed an issue where STAUT went to hang state when doing a disconnect in the wifi_iperf app.
+ - Fixed an issue where STAUT failed to reassociate with an Ext-AP after band switch.
+ - Fixed an issue where Scan command timeout was observed after changing the ssid of Ext-AP to which STAUT is connected.
+
+ - Known Issues
+ - Wi-Fi sample apps do not work with Rev-C (2018) version of RT685 board
+
+version 1.3.r19.p1
+
+ - New Additions:
+ - Added new FW for 8801.
+ - Updated WiFi API reference manual.
+
+ - Bug Fixes:
+ - Fixed an issue where STAUT attempted to connect with Ext-AP continuously even when an Auth Failure occured due to incorect passphrase.
+ - Fixed an issue where SDIO write error occured sometimes for some packet sizes during Tx.
+ - Fixed an issue where packet leakage was noticed on SD8801 when noise was applied.
+ - Fixed an issue to supress Association Failed warning generated during a connection attempt.
+
+ - Known Issues
+ - Wi-Fi sample apps do not work with Rev-C (2018) version of RT685 board
+
+version 1.3.r18.p1
+
+ - New Additions:
+ - Added new FW for 8977.
+
+ - Bug Fixes:
+ - Fixed an issue where STAUT fails to scan after Channel Switch and STAUT moves to new channel after eCSA IE.
+ - Fixed IAR, MDK build compilation warnings.
+
+ - Known Issues
+ - Wi-Fi sample apps do not work with Rev-C (2018) version of RT685 board
+
+version 1.3.r17.p1
+
+ - New Additions:
+ - Added new FW for 8977.
+ - Added CLI command to get a list of stations connected to uAP.
+
+ - Bug Fixes:
+ - Fixed an issue where Scan was temporarily aborted due to noise but correct status was not being returned to the host.
+ - Fixed an issue where STAUT failed to connect with an AP with hidden SSID.
+ - Fixed IAR, MDK build compilation warnings.
+ - Fixed an issue where TCP bi-directional throughput stops abruptly for SD8801 and STAUT is disconnected.
+ - Fixed an issue where UDP Dual Mode throughput stops abruptly and disconnection is seen.
+ - Fixed an issue where Tx got stuck after removal of interference noise.
+
+ - Known Issues
+ - Wi-Fi sample apps do not work with Rev-C (2018) version of RT685 board
+
+version 1.3.r16.p1
+
+ - New Additions:
+ - Added PMF Configuration for uAP.
+ - Updated WLAN Versioning.
+ - Updated WLAN CLIs.
+
+ - Bug Fixes:
+ - Fixed an issue where the STAUT sometimes did not send aggregated packets during Tx.
+ - Fixed an issue External Client could not associate with the UAP in WPA3-SAE mode.
+ - Fixed IAR build compilation warnings.
+ - Fixed an issue where the STAUT failed to associate with an AP with hidden SSID.
+ - Fixed an issue where active scan probe requests were sent for DFS channels.
+ - Fixed an issue where 2.4GHz-HT40 power values were exposed via CLI configuration.
+ - Fixed an issue where the STAUT will be continuously in re-association mode after link-loss.
+
+ - Known Issues
+ - Wi-Fi sample apps do not work with Rev-C (2018) version of RT685 board
+
+version 1.3.r15.p1
+
+ - New Additions
+ - Added support for Tx Power Limit configuration.
+ - Added support for Channel List configuration.
+ - Added support for CW MODE.
+ - Added support for sysinfo CLI to get threads information, network stats, wlan stats and heap stats.
+ - Added -d and -r options to iperf CLI for dual and trade-off mode.
+ - Added support for antenna configuration for 8801.
+ - Added support for band configuration.
+ - Added new FW for 8977
+
+ - Bug Fixes:
+ - Fixed an issue where UDP Rx data rate was low in iperf dual mode operation.
+ - Fixed an issue where STAUT traffic was getting halted when there is traffic in overlapping BSS on the extension channel.
+ - Fixed an issue where STAUT was not able to transmit above MCS 4.
+ - Fixed an issue where association with uAP failed with WPA2 security mode.
+ - Fixed an issue where STAUT failed to connect to WPA3 AP due to PMF config mismatch.
+ - Fixed an issue where ping loss was observed for packets of size greater than 10000 bytes.
+ - Fixed an issue in CLI where CR and LF characters where not handled properly.
+ - Fixed an issue where TCP-Tx traffic abruptly stops when parallel traffic is ongoing on another device using the same AP.
+ - Fixed an issue where DUT goes into hang state when iperf run is aborted.
+ - Fixed an issue where the STATU was not sending aggregated packets to the AP.
+ - Fixed an issue where UAP did not start with WPA2 security mode when ACS is configured.
+ - Fixed an issue where ED MAC was not enabled by default.
+
+ - Known Issues
+ - WiFi sample apps do not work with Rev-C (2018) version of RT685 board
+
+version 1.3.r14.p1
+
+ - New Additions
+ - Added support for Panasonic PAN9026 module.
+ - Added -t option in iperf CLI for setting traffic running time.
+ - Added -B option for supporting Tx/Rx Multicast packets during iperf runs.
+ - Added World Wide Safe Mode configurability to the WiFi Driver.
+ - Added ED MAC support for 8977.
+ - Added support for PMF APIs and CLIs.
+ - Added new FW for 8977 and 8801.
+
+ - Bug Fixes:
+ - Fixed Coverity and mandatory MISRA issues reported on v1.3.r13.p1 release.
+ - Fixed an isuue where DUT console was getting stuck after intiating connection with an AP which has different RSN values than expected.
+ - Fixed an issue where DUT was not able to roam from SAE-PSK to PSK configured AP.
+ - Fixed an issue where the app became unresponsive after Soft AP is stopped.
+ - Removed unnecessary files after Blackduck scan.
+
+ - Known Issues
+ - WiFi sample apps do not work with Rev-C (2018) version of RT685 board
+
+version 1.3.r1r3.p1
+
+ - New Additions
+ - Updated WiFi Driver to be independednt of the LwIP stack. Only the WLAN Connection Manager now uses LwIP.
+ - Added WiFi Roaming feature.
+ - Added CLI support for iperf in wifi_cli app.
+ - Added support for CSA handling from wlan station side.
+ - Added WLAN APIs for wlan-set-txratecfg, wlan-get-txratecfg, wlan-get-data-rate, wlan-set-reg and wlan-get-reg.
+ - Updated External AP SSID required for wifi_iperf app.
+ - Bug Fixes:
+ - Fixed Coverity issues reported on v1.3.r12.p1 release.
+ - Added a fix for ping loss observed during ping test.
+ - Added a fix where the console became unresponsive after wlan-start-network+wlan-stop-network commands are executed in loop.
+ - Added a fix for HT IE missing from beacon for both 2.4GHz and 5GHZ bands.
+ - Fixed warnings reported for IAR.
+ - Added a fix for increasing DHCP leave time to 24 hrs for long duration stress tests.
+ - Known Issues
+ - WiFi sample apps do not work with Rev-C (2018) version of RT685 board
+
+version 1.3.r12.p1
+
+ - New Additions
+ - Added support for ping utility.
+ - Bug Fixes
+ - Restart of SoftAP fails once SoftAP is stopped.
+ - HT IE is missing from beacon for both 2.4GHz and 5GHZ bands.
+ - Low TCP-Rx and UDP-Rx throughput observed for 5GHz-HT40 band.
+ - uAP couldn't be started after STA is associated to Ex-AP.
+ - Stopping SoftAP results in disconnection of In-STA from Ex-AP.
+ - DHCP server is not started for BSS created using "wlan-add" command.
+ - Known Issues
+ - N.A
+
+version 1.3.r11.p2
+
+ - New Additions
+ - Updated SDK version for RT1060 to 2.7.1 RFP RC2.
+ - Added FP91 based WiFi FW for SD8801, SD8977, SD8978, and SD8987.
+ - SD8801, SD8977, SD8978 and SD8987 WiFi Fw have embedded WPA3 SAE support
+ from version v1.3.r11.p1 onwards.
+ - Added WLAN CLI support. Added new wifi_cli for CLI demo.
+ - Enhancements
+ - License and Copyright Updates.
+ - Formated code base with clang-format 10.0.0 standards.
+ - Integrated PICK utility for WiFi Driver code scrubbing.
+ - Bug Fixes
+ - Removed unnecessary prints LwIP stats display.
+ - Fixed an issue where uAP did not start on 5GHz band.
+ - Fixed an issue where loww TCP/UDP-Rx throughput was observed for 5GHz-HT40Mhz.
+ - Known Issues
+ - N.A
+
+version 1.3.r10.p1
+
+ - New Additions
+ - Moved to using LwIP provided IPerf App.
+ - Added SDIO Rx Aggregation support to improve throughput.
+ - Added support for 11ac configuration API.
+ - Updated License and Copyright information on all WiFi driver files and sample apps.
+ - Moved MCUXpresso SDK base for RT1060 platform from 2.6.2 to 2.7.0 rc3.
+ - Known Issues
+ - N.A
+
+version 1.3.r9.p1
+
+ - New Additions
+ - Achieved additional TP improvements by updating LwIP parameters.
+ - Bug Fixes
+ - Fixed the issue of low throughput for both TCP and UDP (Tx/Rx) by updating LwIP parameters.
+ - TCP Throughput was observed to be lower than UDP throughput by 70%-80%. Fixed this issue by updating TCP related LwIP configurations.
+ - Known Issues
+ - N.A
+
+*/
diff --git a/third-party/fsl_wifi/README.md b/third-party/fsl_wifi/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..c2b9da5b2bb501c75d4dac70c7510fc15c01dd75
--- /dev/null
+++ b/third-party/fsl_wifi/README.md
@@ -0,0 +1,38 @@
+
+# NXP Middleware Wi-Fi Layer
+
+This repository is for WiFi driver and WLAN Connection Manager. This repository is a part of MCUXpresso SDK overall delivery which is composed of several project deliveries. Please go to the [mcux-sdk](https://github.com/NXPmicro/mcux-sdk/) to get the MCUXpresso overall delivery to be able to build and go to the [mcux-sdk-examples](https://github.com/nxp-mcuxpresso/mcux-sdk-examples) to run Wi-Fi examples that are based on this repository.
+
+# License
+
+This repository is under LA_OPT_NXP_Software_License, license copy please check [LA_OPT_NXP_Software_License](https://github.com/NXP/wifi_nxp/blob/mcux_wifi_release/LA_OPT_NXP_Software_License.txt).
+
+# Wi-Fi Examples
+
+Wi-Fi examples located in examples/${boards}/wifi_examples
+
+# Supported NXP Boards
+
+Wi-Fi examples are supported for the following NXP boards:
+- EVKB-MIMXRT 1170
+- EVKB-MIMXRT 1060
+- EVKB-MIMXRT 1050
+- EVK-MIMXRT 1020
+- EVK-MIMXRT 1040
+- EVK-MIMXRT 1060
+- EVK-MIMXRT 1064
+- EVK-MIMXRT 1160
+- EVK-MIMXRT1170
+- EVK-MIMXRT595
+- EVK-MIMXRT685
+
+# Supported NXP Wireless Chipsets
+
+NXP Wireless chipsets currently supported are:
+- 88W8801
+- 88W8987
+- IW416
+
+# Contribution
+
+Contributions are not accepted now and will be opened in the future.
diff --git a/third-party/fsl_wifi/SW-Content-Register.txt b/third-party/fsl_wifi/SW-Content-Register.txt
new file mode 100644
index 0000000000000000000000000000000000000000..20de54ed47343c6596e5be0b693179693c15bcea
--- /dev/null
+++ b/third-party/fsl_wifi/SW-Content-Register.txt
@@ -0,0 +1,7 @@
+Release Name: NXP Wi-Fi driver
+Release Version: 1.3.46
+Outgoing License: BSD-3-Clause
+License File: COPYING-BSD-3
+Format: source code, header files, firmware binaries
+Description: NXP Wi-Fi driver and networking utilities
+Origin: NXP NXP (BSD-3-Clause)
diff --git a/third-party/fsl_wifi/certs/ca-cert.h b/third-party/fsl_wifi/certs/ca-cert.h
new file mode 100644
index 0000000000000000000000000000000000000000..25bff7cd5bef8cc1f4b870e137c61abf9854b965
--- /dev/null
+++ b/third-party/fsl_wifi/certs/ca-cert.h
@@ -0,0 +1,65 @@
+const unsigned char ca_der[] = {
+ 0x30, 0x82, 0x04, 0xa1, 0x30, 0x82, 0x03, 0x09, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x14, 0x39, 0x27, 0xf3, 0x9b,
+ 0x20, 0x1e, 0xa5, 0xe3, 0xda, 0xdb, 0x44, 0x64, 0x0d, 0x71, 0x24, 0xb6, 0x8a, 0x94, 0x33, 0x64, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5f, 0x31, 0x0b, 0x30, 0x09, 0x06,
+ 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49, 0x4e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x02,
+ 0x4d, 0x48, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x04, 0x50, 0x55, 0x4e, 0x45, 0x31, 0x0c,
+ 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x03, 0x4e, 0x58, 0x50, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x0c, 0x02, 0x43, 0x41, 0x31, 0x19, 0x30, 0x17, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x09, 0x01, 0x16, 0x0a, 0x63, 0x61, 0x40, 0x6e, 0x78, 0x70, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x20, 0x17, 0x0d, 0x32,
+ 0x33, 0x30, 0x33, 0x31, 0x35, 0x31, 0x34, 0x32, 0x33, 0x31, 0x33, 0x5a, 0x18, 0x0f, 0x33, 0x30, 0x32, 0x32, 0x30,
+ 0x37, 0x31, 0x36, 0x31, 0x34, 0x32, 0x33, 0x31, 0x33, 0x5a, 0x30, 0x5f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+ 0x04, 0x06, 0x13, 0x02, 0x49, 0x4e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x02, 0x4d, 0x48,
+ 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x04, 0x50, 0x55, 0x4e, 0x45, 0x31, 0x0c, 0x30, 0x0a,
+ 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x03, 0x4e, 0x58, 0x50, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x0c, 0x02, 0x43, 0x41, 0x31, 0x19, 0x30, 0x17, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01,
+ 0x16, 0x0a, 0x63, 0x61, 0x40, 0x6e, 0x78, 0x70, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x82, 0x01, 0xa2, 0x30, 0x0d, 0x06,
+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x8f, 0x00, 0x30, 0x82,
+ 0x01, 0x8a, 0x02, 0x82, 0x01, 0x81, 0x00, 0xdd, 0x70, 0x03, 0x4e, 0xb4, 0x53, 0xdf, 0x45, 0xfb, 0xf2, 0x9f, 0x74,
+ 0x0b, 0x1e, 0x53, 0x0e, 0x98, 0x30, 0x5b, 0x68, 0x26, 0x8f, 0x59, 0xba, 0xfc, 0x3c, 0xd6, 0x80, 0x33, 0xd4, 0xf1,
+ 0x16, 0x44, 0x42, 0xc7, 0x7e, 0x77, 0xfe, 0x0b, 0xae, 0x92, 0x50, 0x4c, 0x3b, 0xeb, 0x3f, 0x28, 0x53, 0x4d, 0xa0,
+ 0x58, 0xad, 0xd9, 0x88, 0x4a, 0xd8, 0xac, 0x52, 0xfb, 0x35, 0x5a, 0x34, 0x07, 0xb9, 0x14, 0xd4, 0x0f, 0x3d, 0xa5,
+ 0x7a, 0xa8, 0x44, 0x17, 0x9c, 0x97, 0xb6, 0x7f, 0x0e, 0x7a, 0x05, 0x33, 0x65, 0x58, 0x42, 0xf0, 0x61, 0xd8, 0x20,
+ 0x1f, 0xaa, 0xc6, 0xdc, 0xcf, 0x6b, 0x50, 0xb5, 0x13, 0x55, 0x19, 0x3f, 0x57, 0x6d, 0x15, 0x8f, 0x33, 0xe9, 0x86,
+ 0x98, 0x85, 0xdf, 0xb3, 0x72, 0x4b, 0x8b, 0xa1, 0xe3, 0xa9, 0xa5, 0x43, 0x84, 0xcd, 0x61, 0x6a, 0x61, 0xbc, 0x1a,
+ 0xb9, 0xd6, 0x57, 0xaa, 0x53, 0x4e, 0xa3, 0x1c, 0x8a, 0xab, 0x81, 0x40, 0x84, 0xaa, 0x11, 0x55, 0xcf, 0x37, 0xb4,
+ 0x69, 0xe5, 0x65, 0x59, 0x27, 0x74, 0x78, 0xfb, 0xa3, 0xf0, 0x1a, 0xa1, 0xdd, 0xaf, 0xd7, 0x5e, 0x65, 0x72, 0x99,
+ 0x1b, 0x40, 0x44, 0x99, 0x9f, 0x67, 0x30, 0x5f, 0x12, 0x3c, 0xb7, 0x6a, 0x03, 0xe3, 0x35, 0x10, 0xc2, 0x02, 0x80,
+ 0x66, 0x80, 0xc2, 0xa6, 0x50, 0x9a, 0x9a, 0xa1, 0xa1, 0xf3, 0xc4, 0x06, 0x3b, 0x87, 0x3f, 0xb3, 0x0a, 0x52, 0x4d,
+ 0xb7, 0x3c, 0x8b, 0x8d, 0x17, 0x23, 0x4f, 0x4c, 0x27, 0x7d, 0x1c, 0xb2, 0xb2, 0x6c, 0x19, 0x0c, 0xef, 0x6c, 0xf2,
+ 0x2a, 0xfc, 0x6a, 0x98, 0xb4, 0x7f, 0x46, 0xa2, 0xf2, 0xf1, 0x36, 0x46, 0xbf, 0x40, 0x06, 0x47, 0xf3, 0xdd, 0xa7,
+ 0xe7, 0xe4, 0xef, 0xd3, 0x1e, 0xc5, 0x01, 0xb1, 0xb0, 0x1a, 0x8b, 0x86, 0x06, 0x5f, 0x66, 0xc4, 0x3a, 0xa5, 0x49,
+ 0x09, 0xaa, 0xf6, 0x64, 0x51, 0x41, 0x14, 0x8a, 0x7b, 0x9c, 0x06, 0xfa, 0xff, 0x06, 0xa0, 0xf2, 0x12, 0xa9, 0xef,
+ 0x14, 0x2d, 0xd3, 0x6e, 0xee, 0x0f, 0x35, 0x10, 0xb0, 0x7a, 0x1b, 0xbb, 0x58, 0x44, 0xe8, 0x18, 0x5c, 0xc0, 0x26,
+ 0x1c, 0xfb, 0xc3, 0x80, 0x97, 0xc1, 0xae, 0x56, 0x44, 0xd1, 0x5e, 0xd8, 0xe1, 0x66, 0xfd, 0x43, 0xea, 0x3e, 0x1f,
+ 0x88, 0x00, 0x73, 0xb1, 0x05, 0xd5, 0xbb, 0x70, 0xe6, 0xea, 0xab, 0x6a, 0x63, 0xe7, 0xa2, 0x3b, 0xad, 0x50, 0xe0,
+ 0xc8, 0x79, 0x22, 0x71, 0x8d, 0x31, 0x5c, 0x7d, 0xf6, 0xea, 0x0b, 0x92, 0x7a, 0x1d, 0x46, 0xde, 0xf7, 0x33, 0x4d,
+ 0xca, 0xb0, 0xa4, 0x81, 0x1b, 0xd8, 0xd3, 0xf1, 0x8d, 0xa7, 0xc1, 0xe2, 0x84, 0x24, 0x31, 0x19, 0x71, 0x8c, 0xe6,
+ 0xfe, 0x5d, 0xdb, 0xcd, 0x8b, 0xae, 0xa3, 0x25, 0xdd, 0x2d, 0x07, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30,
+ 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xc5, 0x31, 0x78, 0x1d, 0x4a, 0xde, 0xf0,
+ 0x95, 0x0c, 0xdd, 0xd2, 0x21, 0x41, 0x2c, 0x8c, 0xfa, 0xc8, 0x20, 0x2d, 0xb1, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xc5, 0x31, 0x78, 0x1d, 0x4a, 0xde, 0xf0, 0x95, 0x0c, 0xdd, 0xd2, 0x21,
+ 0x41, 0x2c, 0x8c, 0xfa, 0xc8, 0x20, 0x2d, 0xb1, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04,
+ 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x81, 0x00, 0xb1, 0x1b, 0x2b, 0xdc, 0xf0, 0x60, 0x19, 0xa8, 0x83, 0xb9, 0x10, 0xc3,
+ 0x69, 0x40, 0x52, 0x09, 0x14, 0x41, 0x85, 0x5c, 0x07, 0x73, 0xbc, 0x0f, 0x19, 0xae, 0xcd, 0x40, 0xb2, 0x88, 0x60,
+ 0x12, 0x15, 0x49, 0x8a, 0x37, 0x82, 0xb5, 0x66, 0xa6, 0xea, 0x3e, 0x94, 0xe0, 0x17, 0x64, 0x1d, 0x9f, 0x40, 0x49,
+ 0x03, 0x8e, 0x0b, 0x0d, 0x4e, 0x16, 0xdf, 0x3d, 0x0d, 0x1d, 0x79, 0xe5, 0xaf, 0xd0, 0x20, 0x48, 0xe2, 0x4b, 0x07,
+ 0xc1, 0x3a, 0x23, 0x10, 0x21, 0xc2, 0x72, 0xe1, 0xb4, 0xd6, 0x78, 0xd8, 0xe5, 0xa9, 0xa8, 0x34, 0x2c, 0x74, 0x70,
+ 0x09, 0x30, 0xb7, 0xbe, 0xde, 0x3e, 0x25, 0x02, 0x74, 0xfc, 0xe4, 0x1c, 0xfa, 0xb9, 0xa7, 0x70, 0x94, 0xfa, 0x52,
+ 0x5f, 0x32, 0x73, 0x93, 0x1b, 0x1c, 0x11, 0xb4, 0xc6, 0x7a, 0xd9, 0x72, 0x18, 0xf5, 0x74, 0x06, 0xce, 0xb6, 0xb1,
+ 0x0f, 0x5c, 0x45, 0x21, 0xca, 0x52, 0xda, 0x14, 0x50, 0x8a, 0x1a, 0x30, 0xbd, 0xd3, 0xed, 0x13, 0x10, 0x5c, 0x94,
+ 0x93, 0xb0, 0x45, 0x46, 0x31, 0xbb, 0xb1, 0x61, 0xc8, 0xa9, 0xad, 0x91, 0xee, 0xe1, 0xea, 0xeb, 0x1f, 0x8e, 0x67,
+ 0x22, 0xc4, 0x3a, 0x54, 0xd8, 0x52, 0xeb, 0xde, 0xcf, 0x6d, 0x72, 0x31, 0xaf, 0x75, 0x8c, 0xd2, 0x2c, 0xa8, 0x72,
+ 0x8d, 0x1a, 0x35, 0x53, 0x4b, 0x10, 0x98, 0xc7, 0xd8, 0x3d, 0x59, 0x18, 0x24, 0xdf, 0x57, 0xe6, 0x31, 0x91, 0x55,
+ 0x17, 0x2e, 0x40, 0x1d, 0x82, 0x34, 0xa6, 0x2d, 0x99, 0x23, 0x73, 0xd6, 0x1c, 0x2b, 0x66, 0xe2, 0x50, 0x18, 0xc2,
+ 0x9d, 0x85, 0x32, 0x12, 0xac, 0x7e, 0x41, 0x76, 0x33, 0x39, 0x5b, 0x6d, 0x22, 0xd4, 0x0b, 0xb0, 0xc2, 0x26, 0x53,
+ 0x72, 0x2c, 0x18, 0xbf, 0x45, 0x13, 0x8f, 0xce, 0xc8, 0x28, 0x3c, 0x6d, 0x13, 0x83, 0x02, 0x79, 0xe0, 0x38, 0xb7,
+ 0x14, 0x74, 0x1e, 0xab, 0xc8, 0x9d, 0xad, 0xe2, 0x64, 0xae, 0x4f, 0x16, 0xd6, 0x60, 0xa1, 0x0d, 0x90, 0x11, 0xce,
+ 0x9b, 0x9b, 0x51, 0xe0, 0xba, 0x7c, 0xa2, 0xb5, 0xfd, 0xa4, 0x40, 0x7f, 0xee, 0xaa, 0x5f, 0xf1, 0xbd, 0xf8, 0x04,
+ 0x8f, 0x5a, 0x82, 0x50, 0x80, 0xf5, 0x27, 0x18, 0x8d, 0x37, 0x86, 0x35, 0xb5, 0xf2, 0xfa, 0x18, 0x71, 0x82, 0x24,
+ 0x9a, 0xdd, 0x37, 0x1e, 0xf1, 0xee, 0xd8, 0xd2, 0x16, 0xf4, 0x93, 0xa7, 0x35, 0x46, 0xa0, 0x54, 0x1c, 0x3b, 0x7d,
+ 0x77, 0x48, 0x4e, 0x76, 0x46, 0x27, 0x2d, 0x83, 0x40, 0x76, 0x66, 0x1b, 0x3c, 0x7b, 0x57, 0x68, 0x2d, 0x9d, 0x21,
+ 0xa4, 0x70, 0xf5, 0xff, 0x58, 0xce, 0x3c, 0xf3, 0xc9, 0x67, 0x8c, 0x9d, 0x5a, 0x9c, 0xa0, 0x02, 0xf3, 0x0c, 0x44,
+ 0x65, 0x1b, 0xe3, 0x51, 0x79, 0xcd, 0xf7, 0xb6, 0x66, 0xb3, 0x9d};
+unsigned int ca_der_len = 1189;
diff --git a/third-party/fsl_wifi/certs/client-cert.h b/third-party/fsl_wifi/certs/client-cert.h
new file mode 100644
index 0000000000000000000000000000000000000000..48b77f649652fb6a0e6c44af810c4468d7151168
--- /dev/null
+++ b/third-party/fsl_wifi/certs/client-cert.h
@@ -0,0 +1,60 @@
+const unsigned char client_der[] = {
+ 0x30, 0x82, 0x04, 0x3c, 0x30, 0x82, 0x02, 0xa4, 0x02, 0x01, 0x01, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+ 0x02, 0x49, 0x4e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x02, 0x4d, 0x48, 0x31, 0x0d, 0x30,
+ 0x0b, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x04, 0x50, 0x55, 0x4e, 0x45, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55,
+ 0x04, 0x0a, 0x0c, 0x03, 0x4e, 0x58, 0x50, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x43,
+ 0x41, 0x31, 0x19, 0x30, 0x17, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x0a, 0x63,
+ 0x61, 0x40, 0x6e, 0x78, 0x70, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x20, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x33, 0x31, 0x35,
+ 0x31, 0x34, 0x32, 0x36, 0x32, 0x31, 0x5a, 0x18, 0x0f, 0x33, 0x30, 0x32, 0x32, 0x30, 0x37, 0x31, 0x36, 0x31, 0x34,
+ 0x32, 0x36, 0x32, 0x31, 0x5a, 0x30, 0x67, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+ 0x4e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x02, 0x4d, 0x48, 0x31, 0x0d, 0x30, 0x0b, 0x06,
+ 0x03, 0x55, 0x04, 0x07, 0x0c, 0x04, 0x50, 0x55, 0x4e, 0x45, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x0c, 0x03, 0x4e, 0x58, 0x50, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x06, 0x43, 0x6c, 0x69,
+ 0x65, 0x6e, 0x74, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16,
+ 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x40, 0x6e, 0x78, 0x70, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x82, 0x01, 0xa2,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x8f,
+ 0x00, 0x30, 0x82, 0x01, 0x8a, 0x02, 0x82, 0x01, 0x81, 0x00, 0xd6, 0xd8, 0x4e, 0x1a, 0xc7, 0x51, 0x89, 0x3c, 0x6e,
+ 0xd5, 0xf7, 0xc2, 0x44, 0xbd, 0x8d, 0x53, 0x6a, 0x01, 0xc4, 0x6b, 0x1d, 0xe3, 0xae, 0xbd, 0x83, 0x34, 0x92, 0x31,
+ 0x89, 0xe3, 0x65, 0x63, 0x25, 0xf3, 0xe8, 0x38, 0x37, 0xcd, 0xae, 0x13, 0xac, 0xe3, 0x61, 0xa8, 0x4f, 0x1a, 0xa0,
+ 0x61, 0xb0, 0x54, 0x19, 0x39, 0x4c, 0xd5, 0xb2, 0x99, 0xaa, 0x2c, 0x15, 0xe5, 0x7e, 0x61, 0xec, 0xe9, 0x2f, 0x1e,
+ 0xd1, 0x89, 0x91, 0x90, 0x08, 0x08, 0x51, 0xc7, 0x8a, 0x9f, 0xa2, 0xf0, 0xa8, 0x69, 0x8e, 0xf7, 0xda, 0x7e, 0x69,
+ 0xb4, 0x28, 0xf8, 0x83, 0x81, 0x6d, 0x96, 0x6d, 0xb2, 0x88, 0x98, 0xa3, 0x1f, 0x2f, 0xe3, 0x09, 0x3a, 0x5e, 0xe1,
+ 0x0a, 0xfc, 0xba, 0xd5, 0x98, 0x0a, 0x1d, 0x66, 0x1f, 0xeb, 0x8d, 0x9b, 0x6a, 0x7a, 0xd9, 0x43, 0x29, 0x8c, 0xd9,
+ 0xbd, 0x6e, 0x97, 0xde, 0x84, 0x8b, 0xe0, 0x9c, 0x36, 0x21, 0xd8, 0x22, 0xa1, 0xbf, 0xcc, 0x01, 0x53, 0x53, 0x31,
+ 0x36, 0x97, 0xaa, 0xfe, 0x53, 0x88, 0x14, 0xc9, 0xac, 0xbb, 0x03, 0x4d, 0x74, 0x48, 0x8d, 0x47, 0x5b, 0xbe, 0x41,
+ 0xc0, 0xd2, 0x70, 0x2a, 0xc0, 0x41, 0x2d, 0xa8, 0x1a, 0xd8, 0xa5, 0x88, 0xd1, 0x5e, 0x07, 0x33, 0x40, 0x00, 0xaa,
+ 0xe4, 0xc3, 0xd1, 0xb5, 0x57, 0x22, 0x1c, 0xfc, 0xc8, 0x84, 0x23, 0xab, 0xe2, 0x27, 0x2d, 0x40, 0xa8, 0x1e, 0x39,
+ 0xf3, 0x58, 0xd3, 0x6a, 0x62, 0x55, 0x6d, 0x46, 0x53, 0xf9, 0xad, 0x5a, 0xa4, 0xf5, 0xba, 0x5c, 0xb8, 0x95, 0xc8,
+ 0x32, 0xef, 0x8e, 0x77, 0x50, 0x58, 0x71, 0xc8, 0xaf, 0x5b, 0xc2, 0x8c, 0x37, 0x46, 0xeb, 0x75, 0xbc, 0x96, 0x89,
+ 0x12, 0x86, 0xe8, 0x5c, 0x9e, 0x34, 0x42, 0xed, 0xbc, 0xf6, 0x72, 0x69, 0x28, 0xa5, 0xbd, 0x36, 0x9c, 0xe2, 0x67,
+ 0xf1, 0x09, 0x4f, 0xcb, 0x49, 0x96, 0x45, 0x16, 0xe4, 0xe8, 0x6a, 0x03, 0x91, 0xab, 0x77, 0x5a, 0x52, 0x49, 0x9c,
+ 0xa6, 0x6a, 0x84, 0xc1, 0x7c, 0x7b, 0x68, 0x71, 0x23, 0x3d, 0x82, 0x13, 0x58, 0x1c, 0xd7, 0x75, 0x37, 0x81, 0x86,
+ 0x2e, 0xfb, 0x74, 0x66, 0xfb, 0xcf, 0xfe, 0xab, 0x57, 0x1c, 0xe0, 0x02, 0x95, 0x4c, 0x54, 0x7d, 0x31, 0xf7, 0xb7,
+ 0x3f, 0xe2, 0xb8, 0xf0, 0xe6, 0x90, 0x68, 0x8d, 0x81, 0x9b, 0xdd, 0xad, 0x25, 0x8d, 0x53, 0x5b, 0x6e, 0xbe, 0x87,
+ 0x61, 0x62, 0x10, 0xe6, 0x2b, 0x2e, 0x14, 0xa6, 0x1b, 0x0c, 0x5a, 0xca, 0xe1, 0x32, 0xb1, 0xf9, 0xd6, 0x0b, 0xb2,
+ 0xfb, 0xc4, 0xf4, 0xe8, 0xf9, 0x86, 0xae, 0x9c, 0x8c, 0x37, 0x07, 0x96, 0x59, 0x87, 0xdf, 0x2d, 0xd4, 0x05, 0x97,
+ 0x7d, 0xc2, 0x59, 0xef, 0xa9, 0x8c, 0xcd, 0x7c, 0xb6, 0xab, 0x14, 0xc7, 0x7d, 0xe3, 0x02, 0x03, 0x01, 0x00, 0x01,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x81,
+ 0x00, 0xc4, 0xce, 0x37, 0x39, 0x3f, 0x3e, 0x78, 0xdb, 0x9e, 0x37, 0x9c, 0x42, 0x49, 0x30, 0x65, 0xe7, 0x59, 0xd1,
+ 0xd8, 0x83, 0x55, 0xf4, 0x1b, 0xb0, 0x8e, 0x43, 0xc4, 0x5c, 0x6c, 0xca, 0x95, 0x5a, 0xd9, 0x89, 0xd3, 0x4b, 0x73,
+ 0x78, 0x8a, 0x3a, 0xc6, 0xe3, 0xdc, 0x67, 0x1d, 0xb6, 0xe9, 0x8e, 0x67, 0x71, 0x0a, 0xa4, 0x00, 0x79, 0x82, 0x40,
+ 0x11, 0x64, 0x86, 0x4a, 0x8a, 0x8f, 0x98, 0xce, 0x2c, 0x74, 0xb5, 0x56, 0xeb, 0xfa, 0xe8, 0x83, 0x27, 0x0f, 0xec,
+ 0x12, 0xcb, 0x85, 0x30, 0x9a, 0x16, 0xcc, 0x15, 0x91, 0xb5, 0x66, 0xd0, 0x58, 0xec, 0x1f, 0x55, 0x2c, 0xde, 0x17,
+ 0xc1, 0x83, 0x5c, 0x50, 0x53, 0x8f, 0x64, 0x62, 0xab, 0xec, 0x2b, 0x04, 0x06, 0xeb, 0x29, 0x7e, 0x18, 0x53, 0xfa,
+ 0xfd, 0x0b, 0x79, 0x73, 0x65, 0x02, 0x5b, 0x85, 0x8f, 0x8b, 0xb3, 0xd3, 0xa1, 0x1b, 0x3e, 0x4c, 0x90, 0x55, 0xd1,
+ 0x38, 0x01, 0x0c, 0x76, 0xca, 0x06, 0xe3, 0xaa, 0x3e, 0x7b, 0xfc, 0x3c, 0xbe, 0x8c, 0x25, 0x5a, 0x06, 0x5f, 0x1f,
+ 0x61, 0x8b, 0xab, 0x2c, 0xa4, 0xc3, 0xc7, 0x2b, 0xfa, 0x07, 0x63, 0x1c, 0xda, 0xea, 0x3f, 0x09, 0x92, 0x67, 0x40,
+ 0xbb, 0x5d, 0xd5, 0xc8, 0x3d, 0xf0, 0x6b, 0xdc, 0x7d, 0x88, 0x6a, 0x42, 0xb2, 0xe4, 0xd0, 0x82, 0x69, 0xb5, 0x00,
+ 0x18, 0x40, 0x3c, 0xd1, 0x2c, 0x22, 0x8d, 0xda, 0x9a, 0xdf, 0xb6, 0x79, 0x51, 0xf9, 0x73, 0xe8, 0xfd, 0xb1, 0xb4,
+ 0x24, 0x3c, 0x2f, 0xfe, 0xeb, 0xb3, 0xd2, 0x0c, 0x14, 0x64, 0x9b, 0x63, 0xe9, 0xc4, 0x71, 0x8e, 0x6b, 0xac, 0x5a,
+ 0xa2, 0x16, 0x18, 0xe9, 0x12, 0xec, 0xa1, 0x8c, 0x4c, 0x81, 0xd1, 0x26, 0xb3, 0xa5, 0x3d, 0x5a, 0x0f, 0xf1, 0x81,
+ 0xe4, 0x2b, 0xb5, 0x9a, 0xc6, 0x83, 0x28, 0x64, 0x92, 0xfe, 0x36, 0x88, 0xab, 0x16, 0x29, 0x5a, 0x03, 0xef, 0x96,
+ 0x2c, 0xb0, 0xd8, 0x16, 0x02, 0x3b, 0x5d, 0x38, 0xff, 0xed, 0xcb, 0x59, 0xdf, 0xb0, 0x9a, 0x5f, 0xae, 0xf9, 0xff,
+ 0xaa, 0xd3, 0xaf, 0x7c, 0xce, 0xa2, 0xeb, 0xd0, 0xeb, 0xb4, 0x2e, 0xb8, 0x60, 0xea, 0x7f, 0xb5, 0x79, 0xb5, 0x93,
+ 0x39, 0x83, 0x04, 0x2b, 0xfe, 0xab, 0xd3, 0x9b, 0x8c, 0xee, 0x32, 0x13, 0x76, 0xaa, 0xed, 0x67, 0x87, 0x0d, 0xa9,
+ 0x7b, 0xe8, 0x96, 0xb3, 0x22, 0x3e, 0xf4, 0xac, 0xf8, 0xd4, 0x1e, 0xce, 0x1c, 0x73, 0x9a, 0xf4, 0x13, 0x33, 0xe6,
+ 0x0f, 0x43, 0xc3, 0xe5, 0x23, 0x78, 0xeb, 0xc3, 0xe4, 0x98, 0x82, 0x46, 0x0f, 0x93, 0xb0, 0xda, 0xa5, 0xa4, 0xb8,
+ 0x9b, 0x81, 0x65, 0x68, 0xf5, 0xf1, 0xae, 0xd0, 0x5c, 0x9e, 0x9d, 0x9b, 0xa8, 0x88, 0x2f, 0xdd, 0x25, 0x2b, 0xf3,
+ 0xbb, 0xe0, 0xfe, 0xf8, 0xeb};
+unsigned int client_der_len = 1088;
diff --git a/third-party/fsl_wifi/certs/client-key.h b/third-party/fsl_wifi/certs/client-key.h
new file mode 100644
index 0000000000000000000000000000000000000000..c71f5d6295c0cc45edb9daf92051489dd4697f4c
--- /dev/null
+++ b/third-party/fsl_wifi/certs/client-key.h
@@ -0,0 +1,95 @@
+const unsigned char client_key_der[] = {
+ 0x30, 0x82, 0x06, 0xe3, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x81, 0x00, 0xd6, 0xd8, 0x4e, 0x1a, 0xc7, 0x51, 0x89,
+ 0x3c, 0x6e, 0xd5, 0xf7, 0xc2, 0x44, 0xbd, 0x8d, 0x53, 0x6a, 0x01, 0xc4, 0x6b, 0x1d, 0xe3, 0xae, 0xbd, 0x83, 0x34,
+ 0x92, 0x31, 0x89, 0xe3, 0x65, 0x63, 0x25, 0xf3, 0xe8, 0x38, 0x37, 0xcd, 0xae, 0x13, 0xac, 0xe3, 0x61, 0xa8, 0x4f,
+ 0x1a, 0xa0, 0x61, 0xb0, 0x54, 0x19, 0x39, 0x4c, 0xd5, 0xb2, 0x99, 0xaa, 0x2c, 0x15, 0xe5, 0x7e, 0x61, 0xec, 0xe9,
+ 0x2f, 0x1e, 0xd1, 0x89, 0x91, 0x90, 0x08, 0x08, 0x51, 0xc7, 0x8a, 0x9f, 0xa2, 0xf0, 0xa8, 0x69, 0x8e, 0xf7, 0xda,
+ 0x7e, 0x69, 0xb4, 0x28, 0xf8, 0x83, 0x81, 0x6d, 0x96, 0x6d, 0xb2, 0x88, 0x98, 0xa3, 0x1f, 0x2f, 0xe3, 0x09, 0x3a,
+ 0x5e, 0xe1, 0x0a, 0xfc, 0xba, 0xd5, 0x98, 0x0a, 0x1d, 0x66, 0x1f, 0xeb, 0x8d, 0x9b, 0x6a, 0x7a, 0xd9, 0x43, 0x29,
+ 0x8c, 0xd9, 0xbd, 0x6e, 0x97, 0xde, 0x84, 0x8b, 0xe0, 0x9c, 0x36, 0x21, 0xd8, 0x22, 0xa1, 0xbf, 0xcc, 0x01, 0x53,
+ 0x53, 0x31, 0x36, 0x97, 0xaa, 0xfe, 0x53, 0x88, 0x14, 0xc9, 0xac, 0xbb, 0x03, 0x4d, 0x74, 0x48, 0x8d, 0x47, 0x5b,
+ 0xbe, 0x41, 0xc0, 0xd2, 0x70, 0x2a, 0xc0, 0x41, 0x2d, 0xa8, 0x1a, 0xd8, 0xa5, 0x88, 0xd1, 0x5e, 0x07, 0x33, 0x40,
+ 0x00, 0xaa, 0xe4, 0xc3, 0xd1, 0xb5, 0x57, 0x22, 0x1c, 0xfc, 0xc8, 0x84, 0x23, 0xab, 0xe2, 0x27, 0x2d, 0x40, 0xa8,
+ 0x1e, 0x39, 0xf3, 0x58, 0xd3, 0x6a, 0x62, 0x55, 0x6d, 0x46, 0x53, 0xf9, 0xad, 0x5a, 0xa4, 0xf5, 0xba, 0x5c, 0xb8,
+ 0x95, 0xc8, 0x32, 0xef, 0x8e, 0x77, 0x50, 0x58, 0x71, 0xc8, 0xaf, 0x5b, 0xc2, 0x8c, 0x37, 0x46, 0xeb, 0x75, 0xbc,
+ 0x96, 0x89, 0x12, 0x86, 0xe8, 0x5c, 0x9e, 0x34, 0x42, 0xed, 0xbc, 0xf6, 0x72, 0x69, 0x28, 0xa5, 0xbd, 0x36, 0x9c,
+ 0xe2, 0x67, 0xf1, 0x09, 0x4f, 0xcb, 0x49, 0x96, 0x45, 0x16, 0xe4, 0xe8, 0x6a, 0x03, 0x91, 0xab, 0x77, 0x5a, 0x52,
+ 0x49, 0x9c, 0xa6, 0x6a, 0x84, 0xc1, 0x7c, 0x7b, 0x68, 0x71, 0x23, 0x3d, 0x82, 0x13, 0x58, 0x1c, 0xd7, 0x75, 0x37,
+ 0x81, 0x86, 0x2e, 0xfb, 0x74, 0x66, 0xfb, 0xcf, 0xfe, 0xab, 0x57, 0x1c, 0xe0, 0x02, 0x95, 0x4c, 0x54, 0x7d, 0x31,
+ 0xf7, 0xb7, 0x3f, 0xe2, 0xb8, 0xf0, 0xe6, 0x90, 0x68, 0x8d, 0x81, 0x9b, 0xdd, 0xad, 0x25, 0x8d, 0x53, 0x5b, 0x6e,
+ 0xbe, 0x87, 0x61, 0x62, 0x10, 0xe6, 0x2b, 0x2e, 0x14, 0xa6, 0x1b, 0x0c, 0x5a, 0xca, 0xe1, 0x32, 0xb1, 0xf9, 0xd6,
+ 0x0b, 0xb2, 0xfb, 0xc4, 0xf4, 0xe8, 0xf9, 0x86, 0xae, 0x9c, 0x8c, 0x37, 0x07, 0x96, 0x59, 0x87, 0xdf, 0x2d, 0xd4,
+ 0x05, 0x97, 0x7d, 0xc2, 0x59, 0xef, 0xa9, 0x8c, 0xcd, 0x7c, 0xb6, 0xab, 0x14, 0xc7, 0x7d, 0xe3, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0x02, 0x82, 0x01, 0x80, 0x04, 0x89, 0x7c, 0xdc, 0xc3, 0xe8, 0xcc, 0xe5, 0x21, 0xd2, 0x12, 0xf1, 0x5f,
+ 0x52, 0x41, 0x71, 0xc9, 0x83, 0x50, 0x0a, 0x93, 0x0f, 0x03, 0xd9, 0xac, 0xb3, 0xa7, 0x82, 0xb4, 0x4e, 0xc1, 0x0d,
+ 0x5e, 0xf7, 0xcf, 0xa7, 0xa0, 0x46, 0x0f, 0xaf, 0x0a, 0xaf, 0xa2, 0x98, 0x53, 0x53, 0x54, 0x9f, 0xbb, 0x81, 0x8b,
+ 0x26, 0xd2, 0xa0, 0x90, 0xac, 0xfe, 0x13, 0x00, 0x43, 0x60, 0x6f, 0xe0, 0xf8, 0xeb, 0xad, 0xd2, 0xee, 0xfc, 0xcb,
+ 0xf5, 0xdf, 0x77, 0x1a, 0xa7, 0xaa, 0xc7, 0x5e, 0x1d, 0xb0, 0x5c, 0xfc, 0x8e, 0xf8, 0xac, 0x72, 0xc9, 0x8a, 0xb5,
+ 0xfc, 0x3d, 0xbc, 0x37, 0x84, 0xd5, 0xad, 0xa3, 0x84, 0x3d, 0x16, 0xa6, 0x53, 0x3d, 0x3d, 0xb3, 0x65, 0xb2, 0xec,
+ 0x5f, 0xd1, 0x96, 0xdd, 0x59, 0x3f, 0x38, 0x36, 0x58, 0x01, 0x50, 0x25, 0x42, 0xf3, 0x5e, 0x85, 0xc9, 0x98, 0x1b,
+ 0x72, 0xe1, 0x21, 0x55, 0x2b, 0x2f, 0x7b, 0xc8, 0xff, 0x71, 0x75, 0x75, 0x71, 0xb5, 0x08, 0x0d, 0x07, 0x16, 0xed,
+ 0x58, 0x06, 0x3f, 0xaa, 0x22, 0xa3, 0xb0, 0x66, 0x2a, 0x56, 0x7d, 0xe5, 0x4b, 0xe2, 0xb0, 0xb0, 0xc9, 0xc0, 0xe4,
+ 0xa6, 0x3a, 0xba, 0x24, 0x1a, 0xad, 0x08, 0x91, 0xe3, 0x1a, 0x01, 0x3c, 0xeb, 0xd5, 0x17, 0xc6, 0xcc, 0xfb, 0xd8,
+ 0xc0, 0x86, 0x4f, 0xe6, 0x66, 0xb5, 0xa3, 0xab, 0x2b, 0xa5, 0x11, 0xff, 0xcb, 0x56, 0x5f, 0x88, 0xef, 0x64, 0x45,
+ 0x73, 0x09, 0x68, 0x86, 0x5a, 0x7c, 0xb4, 0x3c, 0xb8, 0x1f, 0x4b, 0x40, 0xd3, 0x05, 0xe2, 0xbb, 0x2c, 0x05, 0x8e,
+ 0xda, 0x81, 0x9f, 0x37, 0x25, 0xfa, 0x7d, 0x7d, 0x94, 0x5f, 0x11, 0xc9, 0x47, 0x24, 0x72, 0x0e, 0x17, 0x08, 0xb6,
+ 0xa7, 0xf0, 0x13, 0x2d, 0x76, 0xfe, 0x97, 0xed, 0x0c, 0xe6, 0x3b, 0xc0, 0x04, 0xe8, 0xf9, 0x0e, 0x70, 0xd7, 0x63,
+ 0xa8, 0x32, 0xf1, 0x63, 0xd1, 0xca, 0xc7, 0xe2, 0x81, 0xf5, 0x72, 0x97, 0x22, 0x43, 0x52, 0x0a, 0x6b, 0x22, 0xdd,
+ 0xe6, 0xf3, 0x9d, 0xed, 0x3a, 0xeb, 0x3b, 0x52, 0x7c, 0x38, 0xca, 0x14, 0xbc, 0x95, 0x9c, 0x9c, 0x0b, 0x14, 0x4b,
+ 0x2c, 0x99, 0x45, 0xd1, 0x4e, 0x02, 0xaa, 0xf4, 0x57, 0x60, 0xba, 0xaf, 0x92, 0x03, 0x22, 0x03, 0x6d, 0x5e, 0x36,
+ 0xfa, 0x14, 0x92, 0x26, 0x09, 0x61, 0x40, 0xe2, 0x9d, 0x75, 0x01, 0xb6, 0x0e, 0x89, 0xfc, 0x44, 0xc4, 0xf1, 0x4f,
+ 0xb0, 0xe9, 0x50, 0xfe, 0xdf, 0xcd, 0xec, 0xe7, 0xda, 0x41, 0x75, 0x73, 0x4f, 0x46, 0x63, 0xf9, 0xa1, 0x28, 0xf4,
+ 0xcb, 0xf6, 0x19, 0x15, 0x1c, 0xea, 0x0b, 0xde, 0x9a, 0x7d, 0xe8, 0x4c, 0x22, 0xd2, 0x0b, 0x4e, 0x5b, 0xa5, 0x0c,
+ 0xe0, 0x34, 0x05, 0x97, 0x83, 0xa6, 0x5f, 0x74, 0xba, 0x81, 0x02, 0x81, 0xc1, 0x00, 0xfc, 0x1c, 0xe8, 0x40, 0x0f,
+ 0x52, 0x89, 0x0b, 0x71, 0x02, 0x91, 0x64, 0xf1, 0x40, 0xfb, 0x55, 0x52, 0x44, 0x43, 0x9d, 0x85, 0x3e, 0x74, 0x86,
+ 0xfc, 0xbb, 0x16, 0x3e, 0x3f, 0xa5, 0x6a, 0xb5, 0x04, 0xec, 0x4b, 0x5e, 0x06, 0x43, 0xd0, 0xa5, 0xf2, 0x48, 0xdb,
+ 0x0c, 0xea, 0x4d, 0xf7, 0xfd, 0x8c, 0xcc, 0xb9, 0xe6, 0xe7, 0xa4, 0xb7, 0x2b, 0xbc, 0x80, 0xd0, 0x67, 0xa6, 0x41,
+ 0xf4, 0x97, 0x5f, 0x86, 0x82, 0x42, 0xe3, 0xf4, 0xfd, 0x68, 0xc2, 0xcc, 0xe2, 0x60, 0x75, 0x9c, 0x55, 0x42, 0x06,
+ 0x6c, 0xf3, 0x58, 0xa2, 0xdb, 0x3c, 0x63, 0x16, 0x21, 0x99, 0xde, 0x96, 0x46, 0x39, 0x36, 0x12, 0xc0, 0x7a, 0x69,
+ 0x4c, 0x92, 0x3b, 0x69, 0xd6, 0xc9, 0xc6, 0x01, 0x0f, 0x77, 0x58, 0xc2, 0xba, 0xb4, 0xe1, 0x86, 0x90, 0x92, 0xa8,
+ 0xba, 0x04, 0x76, 0xd7, 0xb4, 0x2b, 0x24, 0x6e, 0x7c, 0xca, 0x14, 0x3d, 0xe8, 0xb4, 0xcb, 0xf0, 0x2c, 0x00, 0xf9,
+ 0x21, 0x8c, 0x6f, 0x37, 0x8c, 0x30, 0x69, 0x7a, 0xd2, 0x0e, 0x0a, 0xa1, 0xd5, 0x41, 0x7b, 0x75, 0xe7, 0xa9, 0x41,
+ 0xe4, 0xeb, 0xbf, 0x7a, 0x89, 0xc4, 0x77, 0x0e, 0x78, 0x80, 0x28, 0x55, 0x97, 0x52, 0x4f, 0x88, 0xc6, 0x96, 0x72,
+ 0x4c, 0x27, 0x56, 0x73, 0xc7, 0x76, 0x4c, 0x40, 0xf1, 0x3f, 0xf2, 0x6e, 0xc6, 0xc9, 0x08, 0x29, 0x02, 0x81, 0xc1,
+ 0x00, 0xda, 0x28, 0x4c, 0xfb, 0x2b, 0xa1, 0xb9, 0xe9, 0x95, 0x77, 0x2a, 0x81, 0x4d, 0x51, 0x54, 0xcb, 0xc6, 0xb8,
+ 0xbb, 0xf4, 0xf0, 0x99, 0x7b, 0x02, 0x7b, 0xdf, 0x0b, 0x2a, 0x83, 0x8f, 0x4b, 0xa7, 0x8b, 0xcb, 0x27, 0x04, 0x7e,
+ 0x1e, 0x9f, 0x7a, 0xd7, 0x13, 0x8d, 0x9c, 0xa2, 0xbc, 0xf5, 0x3e, 0x1b, 0x2a, 0x7f, 0xb3, 0xc9, 0x05, 0xbd, 0x41,
+ 0x8f, 0xa5, 0xbf, 0x04, 0x7f, 0xf4, 0xa4, 0x33, 0xd2, 0x45, 0x0d, 0xcf, 0x80, 0x86, 0x59, 0xaa, 0x95, 0xc9, 0xd5,
+ 0x16, 0x30, 0xc8, 0xbe, 0x1a, 0x5b, 0xaf, 0x78, 0xe3, 0xc2, 0x3e, 0xc8, 0xd5, 0x0b, 0x96, 0x97, 0x7b, 0x51, 0xbb,
+ 0x88, 0xd4, 0x7c, 0x58, 0x8c, 0x11, 0xd7, 0x81, 0xb3, 0xff, 0x0e, 0x66, 0x4b, 0x2e, 0xac, 0x23, 0x02, 0x0e, 0x7f,
+ 0xc0, 0xb1, 0x5a, 0xd7, 0x19, 0x05, 0x0a, 0xa4, 0x41, 0x04, 0xcb, 0xbc, 0xd3, 0x3b, 0xc6, 0x49, 0x6e, 0xfa, 0x64,
+ 0xb7, 0x8b, 0xfe, 0xf8, 0xe9, 0xf3, 0x62, 0xbf, 0xfc, 0x4c, 0xe8, 0x7a, 0x27, 0x9e, 0x30, 0xcd, 0x30, 0x15, 0x4d,
+ 0xb7, 0x6c, 0xe4, 0xcc, 0x64, 0x6b, 0xe2, 0x1b, 0x94, 0x20, 0x81, 0xb7, 0x93, 0xb0, 0xfd, 0x49, 0x27, 0x5d, 0x98,
+ 0x19, 0x6d, 0xc9, 0x4e, 0xf6, 0xfd, 0x6f, 0xcb, 0xd3, 0x27, 0x77, 0xbd, 0xf1, 0x1b, 0x6f, 0x8f, 0x67, 0x66, 0xa4,
+ 0xba, 0x07, 0x2b, 0x02, 0x81, 0xc1, 0x00, 0x93, 0x91, 0xf4, 0x1c, 0x33, 0x1b, 0xd3, 0x9d, 0xff, 0xdb, 0x49, 0xf1,
+ 0xb5, 0x09, 0x9d, 0x54, 0x16, 0xe0, 0x60, 0x57, 0x9e, 0xbb, 0xad, 0x07, 0xaa, 0x7d, 0x74, 0x0a, 0xa1, 0xc4, 0x98,
+ 0x8e, 0x36, 0xc0, 0x7d, 0x69, 0x1e, 0xef, 0xa8, 0xfc, 0xc9, 0xb1, 0xfd, 0x8e, 0x34, 0xc3, 0xc8, 0xaa, 0x00, 0x35,
+ 0x81, 0x87, 0x78, 0x05, 0xc1, 0x35, 0xf7, 0x93, 0xca, 0xe9, 0x30, 0xb7, 0x20, 0x8d, 0x4e, 0x5b, 0xf4, 0x79, 0x64,
+ 0xe7, 0x6d, 0x41, 0x59, 0xed, 0x05, 0x81, 0x02, 0xb6, 0xac, 0x6d, 0x06, 0x47, 0xd5, 0xb5, 0x07, 0x36, 0x9e, 0xc5,
+ 0x3d, 0x1a, 0x13, 0xef, 0xe7, 0x34, 0x59, 0x9e, 0x9e, 0x21, 0x4e, 0x45, 0xbe, 0x8d, 0x45, 0xfb, 0xb0, 0xbe, 0xd0,
+ 0x88, 0xa4, 0x5d, 0xee, 0x75, 0xa5, 0x45, 0xe5, 0x50, 0x97, 0xe5, 0x50, 0x9f, 0xf9, 0xa6, 0xfa, 0xa1, 0xba, 0x33,
+ 0x0b, 0xfd, 0x3d, 0x67, 0xd5, 0xc9, 0x15, 0xb2, 0xdd, 0xf5, 0x53, 0xe8, 0x7f, 0xcb, 0xac, 0xf9, 0xed, 0xb4, 0x14,
+ 0xb9, 0xd0, 0xa4, 0x69, 0x72, 0xca, 0xda, 0x16, 0x83, 0x30, 0x43, 0xb1, 0x8f, 0x66, 0xb2, 0xe0, 0xee, 0x2d, 0x32,
+ 0xa7, 0x24, 0xbf, 0x97, 0x5c, 0x6a, 0x43, 0xc2, 0xcc, 0x43, 0xb9, 0xa2, 0x53, 0x93, 0x1f, 0x16, 0x8c, 0x25, 0x61,
+ 0x83, 0x0d, 0xf3, 0xa9, 0x5b, 0x50, 0x3e, 0x31, 0xe9, 0x02, 0x81, 0xc0, 0x43, 0x5e, 0x1a, 0x97, 0x9d, 0x9b, 0xad,
+ 0x9b, 0x92, 0x4a, 0x60, 0x57, 0xd9, 0x96, 0x7a, 0x07, 0x0b, 0x70, 0xd4, 0xaa, 0x08, 0xfa, 0x7c, 0x60, 0x01, 0xfc,
+ 0x98, 0xa8, 0x22, 0x44, 0x47, 0xea, 0x8f, 0x62, 0xc6, 0xc3, 0xbe, 0x66, 0x9a, 0x7d, 0x06, 0x99, 0xc5, 0x2b, 0x4f,
+ 0x9d, 0xe6, 0x65, 0xad, 0x61, 0xec, 0x59, 0x8a, 0x84, 0x39, 0x33, 0x5b, 0xb6, 0xa5, 0x4c, 0x30, 0x6f, 0x4d, 0x9d,
+ 0xab, 0x1b, 0x23, 0xee, 0xa6, 0x13, 0xd6, 0xf0, 0xb4, 0x9c, 0xc5, 0x2e, 0xbb, 0x15, 0xe2, 0x8e, 0xa5, 0x2d, 0x84,
+ 0xb9, 0x60, 0xac, 0x9e, 0xbc, 0x1b, 0x7d, 0xff, 0x7d, 0x57, 0x7a, 0x00, 0x01, 0x0d, 0xfd, 0x12, 0x14, 0x18, 0x66,
+ 0xb7, 0x3c, 0xd6, 0x27, 0x84, 0xa3, 0xff, 0x08, 0x38, 0x84, 0x5d, 0xb3, 0x15, 0x91, 0xa5, 0xc6, 0xd6, 0x25, 0xb9,
+ 0x1f, 0x52, 0xe9, 0xcf, 0x7f, 0xb3, 0x7f, 0xc2, 0x01, 0x81, 0x55, 0x44, 0xd0, 0xf8, 0x85, 0xc9, 0x49, 0x1d, 0x7f,
+ 0x87, 0xdc, 0x00, 0x16, 0x68, 0xd1, 0x92, 0xe4, 0x6a, 0x2a, 0xc9, 0xfb, 0x10, 0xa7, 0x7e, 0xee, 0xab, 0xda, 0x01,
+ 0x06, 0x37, 0x1b, 0x97, 0xa3, 0x06, 0x0e, 0xd1, 0x5e, 0x54, 0xaa, 0xb9, 0x7f, 0x8b, 0xa0, 0xd4, 0xe8, 0xe2, 0x73,
+ 0x20, 0xdb, 0x99, 0x40, 0x90, 0x8a, 0x16, 0x63, 0x44, 0x5d, 0x10, 0x15, 0x5a, 0x4d, 0x02, 0x81, 0xc0, 0x5a, 0x64,
+ 0x55, 0x96, 0x85, 0x29, 0xf3, 0x13, 0xe5, 0x67, 0xf4, 0xb8, 0xfa, 0x43, 0xae, 0x75, 0xce, 0xae, 0x01, 0xc7, 0x51,
+ 0xac, 0xc4, 0x95, 0x81, 0x36, 0x2c, 0x4d, 0x31, 0x92, 0x3d, 0xa4, 0x1e, 0x42, 0x2e, 0x66, 0xe0, 0xd9, 0x04, 0xfd,
+ 0xb7, 0xc1, 0x88, 0xdc, 0xc7, 0xee, 0x01, 0x0d, 0xfa, 0x2a, 0x4a, 0x04, 0x85, 0x51, 0xa9, 0x52, 0x35, 0xe7, 0xe6,
+ 0x4a, 0xac, 0x6d, 0x0f, 0x1c, 0xa5, 0x28, 0x66, 0xd5, 0x55, 0xf9, 0x0e, 0x13, 0x7e, 0xfa, 0x26, 0x28, 0xad, 0xbe,
+ 0xf9, 0xe8, 0xfd, 0x37, 0xdf, 0x9b, 0x8d, 0x9b, 0x7c, 0xe1, 0x28, 0xd2, 0x21, 0xb0, 0x47, 0xba, 0xdc, 0xbb, 0xf9,
+ 0x69, 0xcc, 0x0f, 0x3b, 0x98, 0x6c, 0xdb, 0xc1, 0x66, 0x0f, 0x97, 0x06, 0xbe, 0xcb, 0xe2, 0x65, 0xae, 0x23, 0x75,
+ 0x7c, 0x5c, 0xbf, 0x26, 0x75, 0xae, 0xf6, 0x0d, 0xad, 0x16, 0xb5, 0x14, 0x9e, 0x0f, 0xd3, 0x66, 0x62, 0x48, 0xd4,
+ 0x35, 0x09, 0x63, 0xc4, 0xed, 0x13, 0xa2, 0x09, 0x11, 0x4a, 0x20, 0x52, 0x6b, 0x39, 0x74, 0xc4, 0xff, 0x6a, 0xb3,
+ 0xc5, 0xbf, 0x72, 0xf7, 0xae, 0x6c, 0x60, 0xba, 0x8f, 0xb9, 0xe0, 0xc3, 0x04, 0xe0, 0x47, 0xbc, 0xb3, 0x70, 0x49,
+ 0x89, 0xbc, 0x4c, 0x4f, 0x51, 0xcb, 0x5a, 0x7f, 0xc1, 0xbc, 0x92, 0xc9, 0x90, 0x66, 0x58, 0x94, 0x63, 0x2a, 0xcd};
+unsigned int client_key_der_len = 1767;
diff --git a/third-party/fsl_wifi/certs/dh-param.h b/third-party/fsl_wifi/certs/dh-param.h
new file mode 100644
index 0000000000000000000000000000000000000000..145e9152b9b15e12b680d0ea7fb42f4c81de0a78
--- /dev/null
+++ b/third-party/fsl_wifi/certs/dh-param.h
@@ -0,0 +1,17 @@
+unsigned char dh_der[] = {
+ 0x30, 0x82, 0x01, 0x08, 0x02, 0x82, 0x01, 0x01, 0x00, 0xf5, 0x39, 0x89, 0x48, 0xe9, 0x02, 0xfc, 0xd5, 0x13,
+ 0x31, 0xa5, 0x83, 0x8c, 0xeb, 0xdf, 0x6f, 0xb5, 0xd2, 0x94, 0x35, 0x17, 0x60, 0xec, 0xb5, 0x1f, 0x43, 0xd0,
+ 0x90, 0xbd, 0xc8, 0x77, 0xa7, 0x1e, 0xd3, 0x0a, 0x2b, 0x2a, 0xd4, 0xea, 0xa8, 0xbb, 0x19, 0xa9, 0x01, 0x11,
+ 0xde, 0x35, 0xaf, 0xd1, 0x95, 0x55, 0x05, 0x17, 0x9d, 0xf9, 0xc9, 0x73, 0x63, 0xdf, 0x10, 0x97, 0x4d, 0x55,
+ 0xa2, 0x25, 0xa1, 0x90, 0xf0, 0x16, 0xe2, 0x23, 0xd0, 0x87, 0x7b, 0xc9, 0x03, 0xdb, 0x13, 0xdf, 0xf9, 0xe2,
+ 0xb3, 0xe7, 0xf0, 0xff, 0x53, 0xf8, 0xbb, 0xd0, 0x5b, 0xe2, 0x97, 0x17, 0xeb, 0x6b, 0x20, 0x72, 0x96, 0x1f,
+ 0xec, 0x18, 0x60, 0xd0, 0x1f, 0xe8, 0xf1, 0x6f, 0xa1, 0x82, 0x16, 0xca, 0xdc, 0x03, 0xde, 0xcd, 0x8b, 0xbc,
+ 0xc8, 0xd3, 0xca, 0x30, 0x16, 0x52, 0x7f, 0x42, 0xfa, 0xbc, 0xb5, 0xae, 0xb1, 0x64, 0x4a, 0x00, 0x28, 0x0b,
+ 0xcc, 0xfa, 0x7a, 0x59, 0xe9, 0x67, 0x84, 0xb1, 0x5e, 0x95, 0x86, 0x9a, 0xc7, 0xc5, 0xb3, 0xc0, 0x5a, 0x9c,
+ 0x35, 0xa2, 0x33, 0x6e, 0xbd, 0xbf, 0x4a, 0x59, 0x07, 0x76, 0x7c, 0xdd, 0x3e, 0xe2, 0x70, 0x2b, 0x12, 0x75,
+ 0x60, 0xfc, 0x89, 0xc3, 0x0b, 0xe7, 0xb0, 0x08, 0x01, 0x91, 0x68, 0x6e, 0x19, 0xe5, 0x3f, 0xdf, 0xc7, 0xdf,
+ 0x57, 0x86, 0x83, 0xfa, 0x50, 0x46, 0x07, 0x5f, 0xe0, 0x59, 0x2c, 0x98, 0x79, 0x01, 0xb0, 0x8b, 0xad, 0xb5,
+ 0x40, 0x36, 0x5b, 0xcf, 0x01, 0x59, 0x79, 0xfd, 0xb1, 0x4f, 0x69, 0x2b, 0x1c, 0xec, 0x97, 0x04, 0xd2, 0xdb,
+ 0x7c, 0x0e, 0x5f, 0xa4, 0xd6, 0x16, 0x4a, 0x6c, 0x78, 0x8b, 0xa7, 0x23, 0xff, 0x14, 0x6e, 0x88, 0x37, 0xbf,
+ 0x77, 0xc3, 0x11, 0xac, 0x87, 0xe9, 0xab, 0x0e, 0x4f, 0x95, 0xa0, 0x37, 0x2b, 0x02, 0x01, 0x02};
+unsigned int dh_der_len = 268;
diff --git a/third-party/fsl_wifi/certs/server-cert.h b/third-party/fsl_wifi/certs/server-cert.h
new file mode 100644
index 0000000000000000000000000000000000000000..8c2048580928db1c9f769ba99adfcb0b8b84b79f
--- /dev/null
+++ b/third-party/fsl_wifi/certs/server-cert.h
@@ -0,0 +1,60 @@
+const unsigned char server_der[] = {
+ 0x30, 0x82, 0x04, 0x3c, 0x30, 0x82, 0x02, 0xa4, 0x02, 0x01, 0x01, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x5f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
+ 0x02, 0x49, 0x4e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x02, 0x4d, 0x48, 0x31, 0x0d, 0x30,
+ 0x0b, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x04, 0x50, 0x55, 0x4e, 0x45, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55,
+ 0x04, 0x0a, 0x0c, 0x03, 0x4e, 0x58, 0x50, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x02, 0x43,
+ 0x41, 0x31, 0x19, 0x30, 0x17, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x0a, 0x63,
+ 0x61, 0x40, 0x6e, 0x78, 0x70, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x20, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x33, 0x31, 0x35,
+ 0x31, 0x34, 0x32, 0x34, 0x33, 0x37, 0x5a, 0x18, 0x0f, 0x33, 0x30, 0x32, 0x32, 0x30, 0x37, 0x31, 0x36, 0x31, 0x34,
+ 0x32, 0x34, 0x33, 0x37, 0x5a, 0x30, 0x67, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49,
+ 0x4e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x02, 0x4d, 0x48, 0x31, 0x0d, 0x30, 0x0b, 0x06,
+ 0x03, 0x55, 0x04, 0x07, 0x0c, 0x04, 0x50, 0x55, 0x4e, 0x45, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x0c, 0x03, 0x4e, 0x58, 0x50, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x06, 0x53, 0x45, 0x52,
+ 0x56, 0x45, 0x52, 0x31, 0x1d, 0x30, 0x1b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16,
+ 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x40, 0x6e, 0x78, 0x70, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x82, 0x01, 0xa2,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x8f,
+ 0x00, 0x30, 0x82, 0x01, 0x8a, 0x02, 0x82, 0x01, 0x81, 0x00, 0xce, 0x19, 0xcb, 0x0e, 0x8d, 0x82, 0xc1, 0x22, 0xe1,
+ 0xed, 0xa2, 0x88, 0xd0, 0x46, 0xb6, 0x3c, 0x70, 0xcf, 0x30, 0x9c, 0x83, 0x55, 0x7d, 0xd6, 0xac, 0xb3, 0x2f, 0x02,
+ 0xb3, 0x86, 0x8c, 0x8e, 0xcc, 0xcc, 0x9a, 0x6b, 0x1c, 0xf4, 0x12, 0x6e, 0x3a, 0x97, 0xb5, 0x6f, 0x0a, 0xf7, 0x0f,
+ 0x7d, 0x61, 0x1f, 0xf4, 0xf1, 0xef, 0x27, 0xa8, 0x8d, 0xde, 0xcf, 0x77, 0xfa, 0x8c, 0x0c, 0xe3, 0x9b, 0x06, 0xfe,
+ 0x70, 0x54, 0xd2, 0xb5, 0x4b, 0xd8, 0xac, 0x96, 0x6b, 0xef, 0x45, 0xe5, 0x33, 0xe4, 0xd4, 0xec, 0x37, 0xae, 0xfc,
+ 0xe9, 0xbf, 0x4d, 0x97, 0x22, 0x85, 0xde, 0xbf, 0xfe, 0x58, 0x31, 0x01, 0xfd, 0x7c, 0xc1, 0x10, 0x8b, 0x06, 0xdd,
+ 0x78, 0x6f, 0xad, 0x93, 0x6f, 0x1a, 0xf4, 0xf7, 0xab, 0x72, 0x63, 0xd3, 0x24, 0xcc, 0x47, 0xc4, 0xd2, 0x38, 0xfd,
+ 0x69, 0x6a, 0x20, 0x72, 0x65, 0xa9, 0xe2, 0xe3, 0x14, 0xb3, 0xe1, 0x99, 0xc2, 0x70, 0xed, 0x4f, 0xd8, 0xf9, 0x71,
+ 0x5a, 0x08, 0x2e, 0x90, 0x99, 0x87, 0x4c, 0x8d, 0x5b, 0xf2, 0x25, 0x82, 0xe1, 0xfe, 0x50, 0x38, 0xf3, 0x91, 0xd2,
+ 0x86, 0xe6, 0xc9, 0xdc, 0x14, 0xef, 0xaf, 0x75, 0x48, 0x92, 0x65, 0xb3, 0x1a, 0x27, 0x21, 0x56, 0xa9, 0xa0, 0xfd,
+ 0x99, 0xc6, 0xfe, 0x13, 0x3f, 0x65, 0xe2, 0x5a, 0x21, 0x1c, 0xac, 0xce, 0xea, 0x8d, 0x21, 0xae, 0x04, 0xeb, 0x0e,
+ 0x1e, 0x90, 0x2b, 0x4b, 0x63, 0x11, 0xd4, 0x27, 0x3f, 0x72, 0xd3, 0x6a, 0x7c, 0xae, 0x41, 0x47, 0xd4, 0xdb, 0x7b,
+ 0xf3, 0xbf, 0x31, 0x4d, 0x3a, 0x40, 0x02, 0x65, 0xfd, 0x1d, 0x0a, 0x35, 0x8b, 0xf3, 0x2e, 0x38, 0x56, 0xc2, 0xb3,
+ 0x88, 0xc1, 0x36, 0xa0, 0x02, 0x09, 0xe7, 0x2d, 0xc2, 0xbe, 0x68, 0xcd, 0x42, 0xc3, 0xda, 0x4d, 0xdd, 0xfa, 0x69,
+ 0x39, 0x49, 0x93, 0x3c, 0x6c, 0x00, 0x6f, 0x8b, 0x30, 0x88, 0x23, 0x8c, 0x0f, 0xef, 0x9e, 0x65, 0xd2, 0x45, 0x00,
+ 0xd9, 0x80, 0x59, 0x1f, 0xcb, 0x65, 0x35, 0xdc, 0x85, 0xf7, 0xc2, 0x00, 0x9b, 0xc0, 0x2e, 0x4c, 0xb0, 0x90, 0xcd,
+ 0x72, 0xbd, 0x8d, 0x61, 0x4f, 0x26, 0x12, 0x4c, 0x10, 0x32, 0xeb, 0x03, 0x42, 0x1f, 0xb6, 0x9a, 0xc2, 0xab, 0x31,
+ 0x54, 0xb8, 0x80, 0xe2, 0x05, 0x40, 0xdd, 0x36, 0xed, 0x62, 0x84, 0xee, 0xb3, 0x0e, 0x0e, 0x74, 0x48, 0xad, 0xad,
+ 0x6b, 0xd6, 0x99, 0x09, 0xc0, 0xa6, 0x61, 0x24, 0x19, 0x12, 0xcc, 0xca, 0x47, 0x12, 0x4a, 0xf3, 0x65, 0xef, 0xed,
+ 0x97, 0x1a, 0x74, 0xa5, 0x4a, 0xbb, 0xdf, 0x02, 0x49, 0x1b, 0xb0, 0x4d, 0xa1, 0x95, 0x25, 0xda, 0x63, 0xe5, 0x44,
+ 0xb2, 0xf2, 0x35, 0x5e, 0x80, 0x72, 0x7b, 0x50, 0x45, 0x5f, 0xc4, 0xc6, 0xcd, 0x85, 0x02, 0x03, 0x01, 0x00, 0x01,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x81,
+ 0x00, 0xaa, 0x6d, 0x4f, 0x75, 0x97, 0x2d, 0x69, 0xa6, 0x13, 0xc0, 0xde, 0xe1, 0x2f, 0x91, 0xeb, 0x63, 0x2a, 0x16,
+ 0x8a, 0x56, 0x75, 0xce, 0xcb, 0x6f, 0xfa, 0xfa, 0x96, 0xa2, 0xf4, 0x87, 0xcd, 0xea, 0xc5, 0x9c, 0x79, 0x63, 0x56,
+ 0x3b, 0x20, 0x02, 0xc2, 0xb4, 0xc8, 0x6c, 0x03, 0x0a, 0x19, 0xa0, 0xd6, 0x2d, 0xb4, 0x9a, 0x70, 0xe8, 0x86, 0x09,
+ 0xcd, 0xf7, 0x38, 0xf7, 0x9a, 0x6c, 0xce, 0xeb, 0x1f, 0xff, 0x34, 0x1f, 0x20, 0xbd, 0x64, 0x93, 0xef, 0x95, 0xc4,
+ 0x60, 0x68, 0x23, 0xe6, 0x5f, 0x20, 0xdd, 0xcd, 0xbf, 0xe2, 0x31, 0x66, 0xa5, 0x8a, 0x50, 0x88, 0xcc, 0x5a, 0x8d,
+ 0x6d, 0x81, 0x00, 0x8b, 0xba, 0xf7, 0x2b, 0x0d, 0xe6, 0x02, 0x0e, 0x43, 0x96, 0x49, 0x78, 0x0f, 0xbf, 0x2a, 0x26,
+ 0x2e, 0xde, 0xa0, 0xc4, 0x99, 0x71, 0x70, 0xfd, 0x31, 0xdc, 0xa4, 0x98, 0x80, 0x14, 0xaf, 0xe9, 0x86, 0x4e, 0x00,
+ 0x52, 0x42, 0x9e, 0x22, 0x63, 0xbc, 0x25, 0x4d, 0xd0, 0xf4, 0xa9, 0x08, 0x9c, 0x82, 0xbb, 0x72, 0xce, 0xee, 0x08,
+ 0x13, 0x33, 0xe4, 0xa8, 0x9c, 0x74, 0x8d, 0x3b, 0x79, 0x99, 0x17, 0x18, 0x28, 0x9c, 0x18, 0x6b, 0xd7, 0x36, 0x94,
+ 0x2c, 0xf4, 0x0e, 0x0c, 0x6f, 0x27, 0x57, 0xdc, 0x23, 0x18, 0xee, 0xb7, 0xc2, 0x65, 0x5e, 0xd1, 0x6a, 0x59, 0x7e,
+ 0x2a, 0xe8, 0xeb, 0xb4, 0xf8, 0xb7, 0xa5, 0xbc, 0xc5, 0x7c, 0x0f, 0x7b, 0x6f, 0x60, 0x32, 0x24, 0x8a, 0xf6, 0x60,
+ 0xb2, 0x6d, 0x96, 0xb9, 0x27, 0x11, 0x58, 0x94, 0x75, 0x30, 0xe2, 0x34, 0x8d, 0x88, 0x90, 0xa7, 0xb4, 0x36, 0x55,
+ 0x30, 0x7f, 0x10, 0x30, 0x48, 0x8c, 0x60, 0x6a, 0x7e, 0x2f, 0x16, 0xc8, 0x72, 0x9e, 0xb8, 0xe8, 0xb8, 0x05, 0xf7,
+ 0x48, 0xe9, 0x22, 0x4d, 0x9c, 0x2a, 0xd7, 0xba, 0x4b, 0xf7, 0x63, 0xf9, 0x08, 0x6b, 0xd3, 0x88, 0x8f, 0x54, 0xce,
+ 0xc3, 0x23, 0xed, 0x57, 0xb8, 0xa2, 0x44, 0x2c, 0x36, 0xe6, 0x96, 0xcb, 0xf7, 0xed, 0x8b, 0xfb, 0xf6, 0x6d, 0x6e,
+ 0xa1, 0xd5, 0x43, 0x6d, 0xbd, 0x4c, 0xe7, 0xc6, 0x30, 0x03, 0x1f, 0x1f, 0x48, 0xbd, 0xc6, 0x1b, 0x5d, 0xc7, 0x60,
+ 0xb3, 0x42, 0xbf, 0x0f, 0x8c, 0x1f, 0xd3, 0xea, 0x8b, 0x1c, 0x91, 0x89, 0x7c, 0x88, 0xbe, 0x93, 0xc9, 0xf1, 0x1c,
+ 0x5c, 0xc6, 0x56, 0x10, 0x6e, 0xae, 0x55, 0x3e, 0x19, 0xa2, 0xab, 0x05, 0x4c, 0x62, 0xa9, 0x25, 0x3f, 0x54, 0x9e,
+ 0xac, 0x47, 0x22, 0x7e, 0x03, 0xf0, 0xfb, 0x36, 0x8c, 0x89, 0x5c, 0x5f, 0xfd, 0xcf, 0xf3, 0x92, 0xc6, 0x13, 0xed,
+ 0x4e, 0x28, 0x63, 0xa0, 0xfa, 0xae, 0x19, 0x53, 0x95, 0x80, 0x0f, 0xa8, 0x82, 0x52, 0xde, 0x89, 0xb5, 0xa7, 0xc5,
+ 0xf9, 0x80, 0x0a, 0x3c, 0x2a};
+unsigned int server_der_len = 1088;
diff --git a/third-party/fsl_wifi/certs/server-key.h b/third-party/fsl_wifi/certs/server-key.h
new file mode 100644
index 0000000000000000000000000000000000000000..47d947c5c8cf6619f78c1cd937968ebe58b50449
--- /dev/null
+++ b/third-party/fsl_wifi/certs/server-key.h
@@ -0,0 +1,95 @@
+const unsigned char server_key_der[] = {
+ 0x30, 0x82, 0x06, 0xe3, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x81, 0x00, 0xce, 0x19, 0xcb, 0x0e, 0x8d, 0x82, 0xc1,
+ 0x22, 0xe1, 0xed, 0xa2, 0x88, 0xd0, 0x46, 0xb6, 0x3c, 0x70, 0xcf, 0x30, 0x9c, 0x83, 0x55, 0x7d, 0xd6, 0xac, 0xb3,
+ 0x2f, 0x02, 0xb3, 0x86, 0x8c, 0x8e, 0xcc, 0xcc, 0x9a, 0x6b, 0x1c, 0xf4, 0x12, 0x6e, 0x3a, 0x97, 0xb5, 0x6f, 0x0a,
+ 0xf7, 0x0f, 0x7d, 0x61, 0x1f, 0xf4, 0xf1, 0xef, 0x27, 0xa8, 0x8d, 0xde, 0xcf, 0x77, 0xfa, 0x8c, 0x0c, 0xe3, 0x9b,
+ 0x06, 0xfe, 0x70, 0x54, 0xd2, 0xb5, 0x4b, 0xd8, 0xac, 0x96, 0x6b, 0xef, 0x45, 0xe5, 0x33, 0xe4, 0xd4, 0xec, 0x37,
+ 0xae, 0xfc, 0xe9, 0xbf, 0x4d, 0x97, 0x22, 0x85, 0xde, 0xbf, 0xfe, 0x58, 0x31, 0x01, 0xfd, 0x7c, 0xc1, 0x10, 0x8b,
+ 0x06, 0xdd, 0x78, 0x6f, 0xad, 0x93, 0x6f, 0x1a, 0xf4, 0xf7, 0xab, 0x72, 0x63, 0xd3, 0x24, 0xcc, 0x47, 0xc4, 0xd2,
+ 0x38, 0xfd, 0x69, 0x6a, 0x20, 0x72, 0x65, 0xa9, 0xe2, 0xe3, 0x14, 0xb3, 0xe1, 0x99, 0xc2, 0x70, 0xed, 0x4f, 0xd8,
+ 0xf9, 0x71, 0x5a, 0x08, 0x2e, 0x90, 0x99, 0x87, 0x4c, 0x8d, 0x5b, 0xf2, 0x25, 0x82, 0xe1, 0xfe, 0x50, 0x38, 0xf3,
+ 0x91, 0xd2, 0x86, 0xe6, 0xc9, 0xdc, 0x14, 0xef, 0xaf, 0x75, 0x48, 0x92, 0x65, 0xb3, 0x1a, 0x27, 0x21, 0x56, 0xa9,
+ 0xa0, 0xfd, 0x99, 0xc6, 0xfe, 0x13, 0x3f, 0x65, 0xe2, 0x5a, 0x21, 0x1c, 0xac, 0xce, 0xea, 0x8d, 0x21, 0xae, 0x04,
+ 0xeb, 0x0e, 0x1e, 0x90, 0x2b, 0x4b, 0x63, 0x11, 0xd4, 0x27, 0x3f, 0x72, 0xd3, 0x6a, 0x7c, 0xae, 0x41, 0x47, 0xd4,
+ 0xdb, 0x7b, 0xf3, 0xbf, 0x31, 0x4d, 0x3a, 0x40, 0x02, 0x65, 0xfd, 0x1d, 0x0a, 0x35, 0x8b, 0xf3, 0x2e, 0x38, 0x56,
+ 0xc2, 0xb3, 0x88, 0xc1, 0x36, 0xa0, 0x02, 0x09, 0xe7, 0x2d, 0xc2, 0xbe, 0x68, 0xcd, 0x42, 0xc3, 0xda, 0x4d, 0xdd,
+ 0xfa, 0x69, 0x39, 0x49, 0x93, 0x3c, 0x6c, 0x00, 0x6f, 0x8b, 0x30, 0x88, 0x23, 0x8c, 0x0f, 0xef, 0x9e, 0x65, 0xd2,
+ 0x45, 0x00, 0xd9, 0x80, 0x59, 0x1f, 0xcb, 0x65, 0x35, 0xdc, 0x85, 0xf7, 0xc2, 0x00, 0x9b, 0xc0, 0x2e, 0x4c, 0xb0,
+ 0x90, 0xcd, 0x72, 0xbd, 0x8d, 0x61, 0x4f, 0x26, 0x12, 0x4c, 0x10, 0x32, 0xeb, 0x03, 0x42, 0x1f, 0xb6, 0x9a, 0xc2,
+ 0xab, 0x31, 0x54, 0xb8, 0x80, 0xe2, 0x05, 0x40, 0xdd, 0x36, 0xed, 0x62, 0x84, 0xee, 0xb3, 0x0e, 0x0e, 0x74, 0x48,
+ 0xad, 0xad, 0x6b, 0xd6, 0x99, 0x09, 0xc0, 0xa6, 0x61, 0x24, 0x19, 0x12, 0xcc, 0xca, 0x47, 0x12, 0x4a, 0xf3, 0x65,
+ 0xef, 0xed, 0x97, 0x1a, 0x74, 0xa5, 0x4a, 0xbb, 0xdf, 0x02, 0x49, 0x1b, 0xb0, 0x4d, 0xa1, 0x95, 0x25, 0xda, 0x63,
+ 0xe5, 0x44, 0xb2, 0xf2, 0x35, 0x5e, 0x80, 0x72, 0x7b, 0x50, 0x45, 0x5f, 0xc4, 0xc6, 0xcd, 0x85, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0x02, 0x82, 0x01, 0x81, 0x00, 0xc3, 0x41, 0x1c, 0x66, 0x85, 0x1a, 0x42, 0xef, 0x51, 0x2b, 0x58, 0xb8,
+ 0x54, 0xd9, 0x28, 0xfc, 0xc9, 0xc3, 0x00, 0x42, 0xc7, 0x09, 0xcf, 0x55, 0xf9, 0xf7, 0x27, 0xaa, 0x5f, 0x7a, 0x30,
+ 0xdf, 0x78, 0x96, 0xbe, 0x14, 0x8c, 0x31, 0x8e, 0xe4, 0x6f, 0x0e, 0x1b, 0x0d, 0x40, 0x4e, 0x1f, 0x96, 0xa0, 0xd5,
+ 0x2d, 0xb1, 0xa6, 0xe8, 0xe3, 0x7e, 0xc4, 0x7f, 0xb9, 0x22, 0xdc, 0x5b, 0xb9, 0xa5, 0xbd, 0x52, 0x80, 0x09, 0x5c,
+ 0x35, 0xf5, 0xcd, 0x28, 0x74, 0xb9, 0x7c, 0xcd, 0xb2, 0xff, 0x1e, 0xe3, 0xb9, 0x86, 0x67, 0x79, 0xa3, 0xd9, 0x61,
+ 0x20, 0xb5, 0xcc, 0x2d, 0xe3, 0xa6, 0x8a, 0xd6, 0xa3, 0x14, 0x0b, 0x84, 0xbc, 0xaf, 0x79, 0xa9, 0x87, 0xd8, 0x05,
+ 0x91, 0x8f, 0xc8, 0xf2, 0x1b, 0x51, 0x89, 0xe5, 0x98, 0xbb, 0x5b, 0xed, 0x02, 0x42, 0x47, 0x4b, 0x8c, 0xfa, 0xc6,
+ 0x12, 0x9a, 0xcd, 0xff, 0xed, 0x32, 0x47, 0xd8, 0x8b, 0x5a, 0xf2, 0xb1, 0x60, 0xdc, 0x26, 0x35, 0x85, 0x1e, 0x0b,
+ 0x3f, 0x62, 0xb4, 0x13, 0x8a, 0x38, 0x79, 0x87, 0xa0, 0x1f, 0x8a, 0x57, 0x66, 0x1d, 0x1b, 0x21, 0x60, 0x3c, 0x75,
+ 0x30, 0xd3, 0x84, 0xdf, 0xad, 0x35, 0x3b, 0xbc, 0xad, 0x99, 0x31, 0x49, 0x1c, 0x59, 0x47, 0xf3, 0xfa, 0x23, 0xd3,
+ 0xc1, 0x58, 0x66, 0xa5, 0xb2, 0xcd, 0x7b, 0xe5, 0x19, 0xcc, 0xe6, 0x2f, 0x1f, 0x16, 0xd0, 0xad, 0xa1, 0xaf, 0xdf,
+ 0x16, 0x70, 0xe8, 0x1d, 0x77, 0xe2, 0x15, 0x48, 0x4b, 0x2c, 0xf6, 0xb6, 0x31, 0x50, 0x69, 0x99, 0x66, 0xb0, 0xc2,
+ 0x58, 0x3b, 0x80, 0xc2, 0x59, 0x68, 0x77, 0x8a, 0x40, 0xec, 0x15, 0x26, 0x9c, 0x2b, 0x58, 0xdf, 0x75, 0xe9, 0x52,
+ 0xa3, 0x41, 0x43, 0x77, 0xa7, 0xc7, 0x1f, 0x62, 0x76, 0x75, 0xd1, 0x13, 0x72, 0xcd, 0x47, 0x46, 0x28, 0xd1, 0x41,
+ 0xac, 0x4d, 0x1b, 0x56, 0x58, 0x0b, 0xf8, 0x37, 0x0f, 0xae, 0x0b, 0xd4, 0x75, 0x05, 0xb6, 0x66, 0x0d, 0x06, 0x3e,
+ 0xa9, 0xb6, 0x66, 0xe2, 0x69, 0x60, 0x6d, 0x0b, 0x3f, 0x07, 0x62, 0xd6, 0x5a, 0xb3, 0x66, 0x83, 0x9c, 0x14, 0xd4,
+ 0x86, 0xb5, 0xa6, 0x81, 0x90, 0x23, 0x77, 0xa8, 0x26, 0x51, 0x82, 0xad, 0xae, 0x43, 0x31, 0x0d, 0xf2, 0xb9, 0xc8,
+ 0xbd, 0x3d, 0x11, 0xa9, 0x5c, 0x83, 0x11, 0x98, 0xe3, 0x0d, 0x2e, 0x29, 0x59, 0xe3, 0x2b, 0xd4, 0x8f, 0x69, 0xe7,
+ 0xd3, 0x23, 0x74, 0x64, 0x13, 0x86, 0x8b, 0x44, 0x85, 0x03, 0xd0, 0xc0, 0x04, 0x0c, 0xe0, 0xbb, 0x2e, 0x1c, 0xb1,
+ 0x4e, 0x20, 0xb0, 0xf1, 0x23, 0x84, 0xda, 0x03, 0xcf, 0xb8, 0x4d, 0x9f, 0x34, 0x8a, 0x92, 0x5d, 0x84, 0x08, 0x87,
+ 0x86, 0x04, 0x6a, 0x19, 0x5f, 0xcb, 0xc5, 0x93, 0x82, 0xe7, 0x01, 0x02, 0x81, 0xc1, 0x00, 0xff, 0x3b, 0x7a, 0xe2,
+ 0xdb, 0x66, 0x15, 0x4f, 0x21, 0x66, 0xee, 0x47, 0x84, 0x41, 0x5f, 0x75, 0x4f, 0x44, 0xf0, 0xc5, 0x93, 0xc0, 0x4e,
+ 0xdf, 0x36, 0x47, 0x07, 0xe7, 0x45, 0x31, 0x57, 0x44, 0x5b, 0x23, 0x49, 0xd1, 0x5f, 0x7e, 0x0e, 0x2d, 0xd5, 0x93,
+ 0xa1, 0xb5, 0x8c, 0xba, 0xf6, 0x77, 0x33, 0xc0, 0xb3, 0x4f, 0x6e, 0x1d, 0x02, 0x61, 0xfd, 0xb2, 0xfc, 0x78, 0x28,
+ 0x89, 0x8f, 0xf4, 0x8a, 0xc6, 0x69, 0xdb, 0xc3, 0xe2, 0xc4, 0x54, 0x2e, 0xd1, 0xd9, 0x87, 0x7f, 0x35, 0x88, 0x4e,
+ 0xcf, 0x16, 0x78, 0x57, 0x00, 0x3d, 0xe7, 0x02, 0x72, 0x22, 0xbe, 0x0d, 0x39, 0x1c, 0xfa, 0x7f, 0x41, 0xda, 0x65,
+ 0x1a, 0xf9, 0xd5, 0xb7, 0x0c, 0xfc, 0x25, 0x86, 0xb4, 0xd5, 0xe7, 0x81, 0x01, 0x2f, 0x56, 0x17, 0xb5, 0x0b, 0x6b,
+ 0x2c, 0xa5, 0xcb, 0x7c, 0xa2, 0x2f, 0xaf, 0x4b, 0xf7, 0x15, 0xe8, 0x15, 0x9f, 0xa6, 0x68, 0xab, 0x12, 0x5c, 0x11,
+ 0xc6, 0xb1, 0x8c, 0x1f, 0x02, 0x31, 0x8d, 0x0c, 0x8f, 0x87, 0x88, 0x2a, 0xf6, 0x4d, 0x6b, 0x87, 0x75, 0x06, 0xa7,
+ 0x5c, 0xf4, 0xb4, 0xf2, 0x2c, 0x48, 0xbb, 0x67, 0x44, 0x37, 0x14, 0xff, 0x7b, 0xc5, 0x0d, 0xa8, 0xcb, 0x3f, 0x62,
+ 0x5e, 0x7d, 0x5c, 0x52, 0x63, 0x66, 0x8b, 0x6e, 0xc7, 0xb6, 0x52, 0xd3, 0x0b, 0x43, 0x60, 0xde, 0x89, 0x02, 0x81,
+ 0xc1, 0x00, 0xce, 0xb8, 0x7b, 0xca, 0xb5, 0x7a, 0x44, 0x2c, 0x19, 0x5d, 0x52, 0xfb, 0x2a, 0xd2, 0x57, 0xe7, 0xa3,
+ 0xba, 0x69, 0x00, 0xc0, 0x92, 0x8d, 0xba, 0xc9, 0x8c, 0x98, 0x6a, 0x13, 0x96, 0xa2, 0x64, 0xb8, 0x89, 0x36, 0x2d,
+ 0x8a, 0x39, 0x65, 0x12, 0x9e, 0xbb, 0x64, 0xa5, 0x23, 0x0c, 0x6d, 0x98, 0x37, 0xa0, 0x9b, 0x00, 0x33, 0x3b, 0xc1,
+ 0x76, 0x71, 0x41, 0x4e, 0xf2, 0xc5, 0x5f, 0x42, 0x6e, 0x26, 0x73, 0x27, 0x46, 0xcd, 0x18, 0x14, 0x7d, 0x8d, 0x91,
+ 0xba, 0x90, 0x88, 0xd4, 0x33, 0x4f, 0xbd, 0x0a, 0x66, 0x0f, 0x11, 0x0f, 0xe8, 0x71, 0xcc, 0xad, 0x20, 0x81, 0x4b,
+ 0x60, 0xdb, 0xf1, 0xef, 0x3f, 0x08, 0xf5, 0x57, 0x68, 0xaa, 0x23, 0xbf, 0xfe, 0x06, 0x77, 0x68, 0x4d, 0x51, 0x1d,
+ 0xd3, 0xf6, 0x49, 0x9d, 0xe5, 0xfe, 0xbb, 0x21, 0xec, 0xef, 0xd6, 0x79, 0xdf, 0x8b, 0x25, 0x66, 0xee, 0x9b, 0x24,
+ 0x4a, 0xba, 0xc8, 0x6a, 0x4d, 0x94, 0xc2, 0x48, 0x6d, 0x2f, 0xad, 0x49, 0x62, 0x33, 0xe0, 0x75, 0x7f, 0xa6, 0x9a,
+ 0x96, 0x97, 0x37, 0xda, 0xff, 0xee, 0x6f, 0x6a, 0x15, 0xc8, 0x8e, 0x1e, 0xce, 0x89, 0x0e, 0xe2, 0xfc, 0x45, 0x72,
+ 0x19, 0x74, 0x91, 0x0f, 0x77, 0xf5, 0x6c, 0xa7, 0xa2, 0x9e, 0x9c, 0x8c, 0x54, 0xf3, 0x0e, 0x5c, 0x95, 0x52, 0xc6,
+ 0x1c, 0x3a, 0xd8, 0x1d, 0x02, 0x81, 0xc0, 0x0f, 0x31, 0x3e, 0x2e, 0x54, 0xba, 0xed, 0xd7, 0xc8, 0xf8, 0x34, 0x84,
+ 0xc3, 0x45, 0x94, 0xe6, 0x09, 0xb2, 0xe3, 0xd6, 0x0e, 0xe6, 0x6a, 0x8b, 0x74, 0xd2, 0xa3, 0x90, 0xcb, 0x98, 0x95,
+ 0x46, 0x37, 0x5a, 0x91, 0x61, 0x4a, 0x1a, 0xd9, 0xc3, 0x36, 0xac, 0x53, 0xfa, 0xd7, 0x86, 0xa5, 0x77, 0x10, 0xf8,
+ 0x8e, 0x73, 0xd2, 0xed, 0x1d, 0x20, 0x32, 0x16, 0xbe, 0x5a, 0x74, 0xa7, 0x43, 0x8f, 0x5d, 0xd7, 0x53, 0xa3, 0xc6,
+ 0x34, 0x30, 0x55, 0x86, 0x77, 0xed, 0x47, 0xd8, 0x75, 0x9a, 0x48, 0x7e, 0xa1, 0x2a, 0xc6, 0x9a, 0xf8, 0x14, 0x51,
+ 0x1b, 0xf4, 0x1f, 0x75, 0xf0, 0x09, 0x5e, 0x8b, 0xc6, 0xa2, 0xb6, 0x53, 0xf5, 0xbd, 0x17, 0xe9, 0x48, 0xf4, 0xfe,
+ 0xe0, 0xb2, 0xbe, 0xd5, 0xf9, 0xf9, 0x14, 0x59, 0xd2, 0xe7, 0xfc, 0x18, 0x2b, 0x42, 0x42, 0x87, 0xf0, 0xe8, 0xb1,
+ 0x4f, 0xe2, 0xd8, 0xee, 0xb8, 0x93, 0x12, 0x35, 0xe4, 0xa0, 0xe0, 0x5a, 0x00, 0x65, 0x83, 0xcf, 0x00, 0x9e, 0x11,
+ 0xba, 0x55, 0x69, 0xf0, 0x8c, 0xba, 0xad, 0x04, 0xe2, 0x1d, 0x64, 0x46, 0xef, 0x35, 0xfa, 0x18, 0x52, 0xb7, 0xfc,
+ 0xfc, 0x9d, 0x7e, 0xbd, 0x7a, 0x63, 0x8f, 0x5d, 0x95, 0xc3, 0x8f, 0x1a, 0x6a, 0xc1, 0xdd, 0x11, 0x97, 0xa0, 0x03,
+ 0x17, 0x16, 0x2e, 0x35, 0xeb, 0xbc, 0xb5, 0xfe, 0x69, 0x02, 0x81, 0xc0, 0x77, 0xc3, 0x98, 0x2c, 0xc3, 0xe1, 0x57,
+ 0x37, 0xb9, 0x66, 0x41, 0x1a, 0x35, 0x1f, 0xf2, 0x3f, 0xc8, 0xb2, 0xc9, 0xfc, 0xde, 0x94, 0xc9, 0xba, 0x0a, 0xe5,
+ 0x02, 0xb4, 0x8a, 0x2e, 0xbe, 0x5c, 0xde, 0x30, 0xd8, 0x8b, 0x9f, 0xc6, 0x4a, 0xd1, 0x73, 0xd7, 0x1b, 0xa3, 0x34,
+ 0xe0, 0x11, 0x6a, 0x9b, 0xe7, 0xd7, 0x85, 0x51, 0x29, 0x70, 0x97, 0x3f, 0x5c, 0x57, 0xf1, 0xfc, 0xf9, 0x88, 0x92,
+ 0x2a, 0x82, 0x92, 0xa1, 0xc9, 0x57, 0x07, 0x20, 0x0a, 0x72, 0x00, 0x85, 0x96, 0x50, 0x62, 0x7d, 0xf3, 0x06, 0xe0,
+ 0x44, 0x20, 0x5d, 0x78, 0x0c, 0xde, 0x48, 0xfb, 0x49, 0x0d, 0x33, 0xcb, 0x99, 0xaa, 0x43, 0x79, 0xdc, 0x32, 0x4c,
+ 0xf8, 0x2d, 0x88, 0x21, 0x12, 0xfc, 0x01, 0x18, 0xb2, 0x43, 0x36, 0xb7, 0x3c, 0xc5, 0x57, 0x27, 0xb2, 0xa1, 0x20,
+ 0x15, 0x7f, 0xcb, 0xd2, 0x00, 0x5a, 0xa5, 0xfc, 0xdd, 0x33, 0x34, 0x7c, 0x6c, 0x7a, 0x72, 0x02, 0x1a, 0x61, 0x3d,
+ 0xa8, 0xde, 0x9b, 0x62, 0x62, 0xad, 0xcb, 0x45, 0x2e, 0x6f, 0xe7, 0x89, 0x2a, 0x9a, 0x1d, 0xa6, 0xb5, 0x33, 0xdf,
+ 0xf4, 0xf6, 0xa9, 0xd0, 0x7c, 0xc5, 0x7c, 0x2a, 0x2d, 0xcd, 0xc2, 0x03, 0xaf, 0xbb, 0x27, 0x83, 0xaf, 0xf4, 0x9b,
+ 0x19, 0x8b, 0x97, 0x1d, 0xec, 0x47, 0x48, 0xca, 0x56, 0x4f, 0x62, 0xb1, 0x90, 0xdd, 0x02, 0x81, 0xc0, 0x26, 0x80,
+ 0xdf, 0xf2, 0x8b, 0x17, 0x31, 0x72, 0x38, 0x4a, 0x05, 0x90, 0x92, 0xc5, 0x26, 0x71, 0xb2, 0xeb, 0x1e, 0x5e, 0x30,
+ 0x56, 0x5a, 0x42, 0x60, 0x3c, 0x91, 0xf9, 0x29, 0xbe, 0x09, 0x89, 0xbe, 0xd1, 0x23, 0x3d, 0x52, 0xfd, 0x35, 0xf7,
+ 0xab, 0x1a, 0xb5, 0x00, 0xae, 0x02, 0xc5, 0x68, 0x76, 0x5b, 0x6f, 0x6b, 0x95, 0xd5, 0x1f, 0x12, 0x05, 0x02, 0x42,
+ 0x40, 0xd5, 0xa3, 0xc2, 0x7c, 0xd5, 0x04, 0xa8, 0x81, 0xa2, 0x79, 0xfc, 0x27, 0xe7, 0x11, 0x02, 0x84, 0x50, 0x90,
+ 0x55, 0x1c, 0x96, 0x2f, 0x0d, 0xa8, 0xf6, 0x14, 0xdb, 0x33, 0xca, 0x1c, 0x4f, 0x99, 0x55, 0x11, 0x20, 0x19, 0xab,
+ 0x97, 0xb3, 0xd1, 0x25, 0x56, 0xb9, 0x6e, 0x71, 0xec, 0x53, 0xfe, 0x58, 0xa6, 0xe5, 0x0a, 0x5f, 0x29, 0x2e, 0xfe,
+ 0x20, 0xd0, 0x3b, 0xfc, 0x2c, 0x3d, 0x6e, 0x4b, 0x48, 0x05, 0x78, 0x9b, 0xf2, 0xd4, 0xc6, 0x58, 0xc8, 0x07, 0x22,
+ 0x95, 0x51, 0x71, 0x6a, 0xb0, 0x20, 0x48, 0x91, 0x94, 0x67, 0x71, 0xb3, 0x6b, 0x09, 0x10, 0x09, 0x17, 0x32, 0x4c,
+ 0xbf, 0x70, 0xe5, 0xce, 0x9b, 0x64, 0xfe, 0x04, 0x5e, 0x0c, 0xd9, 0xfb, 0xa7, 0x4e, 0xf7, 0xcb, 0x03, 0xb9, 0xcc,
+ 0x17, 0x58, 0xff, 0x42, 0x3d, 0x1c, 0x09, 0x09, 0x9c, 0x4e, 0x7b, 0x1e, 0x0d, 0x08, 0x2d, 0x21, 0xd9, 0xd0, 0xf1};
+unsigned int server_key_der_len = 1767;
diff --git a/third-party/fsl_wifi/cli/cli.c b/third-party/fsl_wifi/cli/cli.c
new file mode 100644
index 0000000000000000000000000000000000000000..5a2dd1b4476c088c8baeeac8cff3e6491cb2f23d
--- /dev/null
+++ b/third-party/fsl_wifi/cli/cli.c
@@ -0,0 +1,854 @@
+/** @file cli.c
+ *
+ * @brief This file provides CLI: command-line interface
+ *
+ * Copyright 2008-2023 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/* cli.c: CLI: command-line interface
+ *
+ */
+
+#include
+#include
+
+#include
+#include
+#include
+
+#include "cli_mem.h"
+#define END_CHAR '\r'
+#define PROMPT "\r\n# "
+#define HALT_MSG "CLI_HALT"
+#define NUM_BUFFERS 1
+#define MAX_COMMANDS 100U
+#define IN_QUEUE_SIZE 4
+
+#define RX_WAIT OS_WAIT_FOREVER
+#define SEND_WAIT OS_WAIT_FOREVER
+
+#define CONFIG_CLI_STACK_SIZE (5376)
+
+static os_mutex_t cli_mutex;
+static os_queue_pool_define(queue_data, IN_QUEUE_SIZE);
+static struct
+{
+ int input_enabled;
+ bool initialized;
+
+ unsigned int bp; /* buffer pointer */
+ char *cli_inbuf;
+
+ const struct cli_command *commands[MAX_COMMANDS];
+ unsigned int num_commands;
+ bool echo_disabled;
+
+ os_queue_t input_queue;
+ os_queue_pool_t in_queue_data;
+
+} cli;
+
+static os_thread_t cli_main_thread;
+static os_thread_stack_define(cli_stack, CONFIG_CLI_STACK_SIZE);
+
+/* Find the command 'name' in the cli commands table.
+ * If len is 0 then full match will be performed else upto len bytes.
+ * Returns: a pointer to the corresponding cli_command struct or NULL.
+ */
+#ifdef COEX_APP_SUPPORT
+const struct cli_command *lookup_command(char *name, int len)
+#else
+static const struct cli_command *lookup_command(char *name, int len)
+#endif
+{
+ unsigned int i = 0;
+ unsigned int n = 0;
+
+ while (i < MAX_COMMANDS && n < cli.num_commands)
+ {
+ if (cli.commands[i]->name == NULL)
+ {
+ i++;
+ continue;
+ }
+ /* See if partial or full match is expected */
+ if (len != 0)
+ {
+ if (strncmp(cli.commands[i]->name, name, (size_t)len) == 0)
+ {
+ return cli.commands[i];
+ }
+ }
+ else
+ {
+ if (strcmp(cli.commands[i]->name, name) == 0)
+ {
+ return cli.commands[i];
+ }
+ }
+
+ i++;
+ n++;
+ }
+
+ return NULL;
+}
+
+/* Parse input line and locate arguments (if any), keeping count of the number
+ * of arguments and their locations. Look up and call the corresponding cli
+ * function if one is found and pass it the argv array.
+ *
+ * Returns: 0 on success: the input line contained at least a function name and
+ * that function exists and was called.
+ * 1 on lookup failure: there is no corresponding function for the
+ * input line.
+ * 2 on invalid syntax: the arguments list couldn't be parsed
+ */
+static int handle_input(char *handle_inbuf)
+{
+ struct
+ {
+ unsigned inArg : 1;
+ unsigned inQuote : 1;
+ unsigned done : 1;
+ } stat;
+ static char *argv[64];
+ int argc = 0;
+ int i = 0;
+ unsigned int j = 0;
+ const struct cli_command *command = NULL;
+ const char *p;
+
+ (void)memset((void *)&argv, 0, sizeof(argv));
+ (void)memset(&stat, 0, sizeof(stat));
+
+
+ /*
+ * Some terminals add CRLF to the input buffer.
+ * Sometimes the CR and LF characters maybe misplaced (it maybe added at the
+ * start or at the end of the buffer). Therefore, strip all CRLF (0x0d, 0x0a).
+ */
+ for (j = 0; j < INBUF_SIZE; j++)
+ {
+ if (handle_inbuf[j] == (char)0x0D || handle_inbuf[j] == (char)0x0A)
+ {
+ if (j < (INBUF_SIZE - 1U))
+ {
+ (void)memmove((handle_inbuf + j), handle_inbuf + j + 1, (INBUF_SIZE - (unsigned int)i));
+ }
+ handle_inbuf[INBUF_SIZE] = (char)(0x00);
+ }
+ }
+
+ do
+ {
+ switch (handle_inbuf[i])
+ {
+ case '\0':
+ if (stat.inQuote != 0U)
+ {
+ return 2;
+ }
+ stat.done = 1;
+ break;
+
+ case '"':
+ if (i > 0 && handle_inbuf[i - 1] == '\\' && (stat.inArg != 0U))
+ {
+ (void)memcpy(&handle_inbuf[i - 1], &handle_inbuf[i], strlen(&handle_inbuf[i]) + 1U);
+ --i;
+ break;
+ }
+ if ((stat.inQuote == 0U) && (stat.inArg != 0U))
+ {
+ break;
+ }
+ if ((stat.inQuote != 0U) && (stat.inArg == 0U))
+ {
+ return 2;
+ }
+
+ if ((stat.inQuote == 0U) && (stat.inArg == 0U))
+ {
+ stat.inArg = 1;
+ stat.inQuote = 1;
+ argc++;
+ argv[argc - 1] = &handle_inbuf[i + 1];
+ }
+ else if ((stat.inQuote != 0U) && (stat.inArg != 0U))
+ {
+ stat.inArg = 0;
+ stat.inQuote = 0;
+ handle_inbuf[i] = '\0';
+ }
+ else
+ { /* Do Nothing */
+ }
+ break;
+
+ case ' ':
+ if (i > 0 && handle_inbuf[i - 1] == '\\' && (stat.inArg != 0U))
+ {
+ (void)memcpy(&handle_inbuf[i - 1], &handle_inbuf[i], strlen(&handle_inbuf[i]) + 1U);
+ --i;
+ break;
+ }
+ if ((stat.inQuote == 0U) && (stat.inArg != 0U))
+ {
+ stat.inArg = 0;
+ handle_inbuf[i] = '\0';
+ }
+ break;
+
+ default:
+ if (stat.inArg == 0U)
+ {
+ stat.inArg = 1;
+ argc++;
+ argv[argc - 1] = &handle_inbuf[i];
+ }
+ break;
+ }
+ i++;
+ } while ((stat.done == 0U) && (unsigned int)i < INBUF_SIZE);
+
+ if (stat.inQuote != 0U)
+ {
+ return 2;
+ }
+
+ if (argc < 1)
+ {
+ return 0;
+ }
+
+ if (!cli.echo_disabled)
+ {
+ (void)PRINTF("\r\n");
+ }
+
+ /*
+ * Some comamands can allow extensions like foo.a, foo.b and hence
+ * compare commands before first dot.
+ */
+ i = ((p = strchr(argv[0], (int)('.'))) == NULL) ? 0 : (p - argv[0]);
+ command = lookup_command(argv[0], i);
+ if (command == NULL)
+ {
+ return 1;
+ }
+
+ command->function(argc, argv);
+
+ return 0;
+}
+
+/* Perform basic tab-completion on the input buffer by string-matching the
+ * current input line against the cli functions table. The current input line
+ * is assumed to be NULL-terminated. */
+static void tab_complete(char *tab_inbuf, unsigned int *bp)
+{
+ unsigned int i = 0, n = 0, m = 0;
+ const char *fm = NULL;
+
+ (void)PRINTF("\r\n");
+
+ /* show matching commands */
+ while (i < MAX_COMMANDS && n < cli.num_commands)
+ {
+ if (cli.commands[i]->name != NULL)
+ {
+ if (strncmp(tab_inbuf, cli.commands[i]->name, *bp) == 0)
+ {
+ m++;
+ if (m == 1U)
+ {
+ fm = cli.commands[i]->name;
+ }
+ else if (m == 2U)
+ {
+ (void)PRINTF("%s %s ", fm, cli.commands[i]->name);
+ }
+ else
+ {
+ (void)PRINTF("%s ", cli.commands[i]->name);
+ }
+ }
+ n++;
+ }
+ i++;
+ }
+
+ /* there's only one match, so complete the line */
+ if (m == 1U && fm != NULL)
+ {
+ n = strlen(fm) - *bp;
+ if (*bp + n < INBUF_SIZE)
+ {
+ (void)memcpy(tab_inbuf + *bp, fm + *bp, n);
+ *bp += n;
+ tab_inbuf[(*bp)++] = ' ';
+ tab_inbuf[*bp] = '\0';
+ }
+ }
+
+ /* just redraw input line */
+ (void)PRINTF("%s%s", PROMPT, tab_inbuf);
+}
+
+enum
+{
+ BASIC_KEY,
+ EXT_KEY_FIRST_SYMBOL,
+ EXT_KEY_SECOND_SYMBOL,
+};
+
+
+/* Get an input line.
+ *
+ * Returns: 1 if there is input, 0 if the line should be ignored. */
+static int get_input(char *get_inbuf, unsigned int *bp)
+{
+ static int state = BASIC_KEY;
+ static char second_char;
+ if (get_inbuf == NULL)
+ {
+ return 0;
+ }
+
+ // wmstdio_flush();
+
+ while (true)
+ {
+ get_inbuf[*bp] = (char)GETCHAR();
+
+ if (state == EXT_KEY_SECOND_SYMBOL)
+ {
+ if (second_char == (char)(0x4F))
+ {
+ if (get_inbuf[*bp] == (char)(0x4D))
+ {
+ /* Num. keypad ENTER */
+ get_inbuf[*bp] = '\0';
+ *bp = 0;
+ state = BASIC_KEY;
+ return 1;
+ }
+ }
+ }
+
+ if (state == EXT_KEY_FIRST_SYMBOL)
+ {
+ second_char = get_inbuf[*bp];
+ if (get_inbuf[*bp] == (char)(0x4F))
+ {
+ state = EXT_KEY_SECOND_SYMBOL;
+ continue;
+ }
+ if (get_inbuf[*bp] == (char)(0x5B))
+ {
+ state = EXT_KEY_SECOND_SYMBOL;
+ continue;
+ }
+ }
+ if (get_inbuf[*bp] == (char)(0x1B))
+ {
+ /* We may be seeing a first character from a
+ extended key */
+ state = EXT_KEY_FIRST_SYMBOL;
+ continue;
+ }
+ state = BASIC_KEY;
+
+ if (get_inbuf[*bp] == END_CHAR)
+ { /* end of input line */
+ get_inbuf[*bp] = '\0';
+ *bp = 0;
+ return 1;
+ }
+
+ if ((get_inbuf[*bp] == (char)(0x08)) || /* backspace */
+ (get_inbuf[*bp] == (char)(0x7f)))
+ { /* DEL */
+ if (*bp > (unsigned int)(0))
+ {
+ (*bp)--;
+ if (!cli.echo_disabled)
+ {
+ (void)PRINTF("%c %c", 0x08, 0x08);
+ }
+ }
+ continue;
+ }
+
+ if (get_inbuf[*bp] == '\t')
+ {
+ get_inbuf[*bp] = '\0';
+ tab_complete(get_inbuf, bp);
+ continue;
+ }
+
+ if (!cli.echo_disabled)
+ {
+ (void)PRINTF("%c", get_inbuf[*bp]);
+ }
+
+ (*bp)++;
+ if (*bp >= (unsigned int)(INBUF_SIZE))
+ {
+ (void)PRINTF("Error: input buffer overflow\r\n");
+ (void)PRINTF(PROMPT);
+ *bp = 0;
+ return 0;
+ }
+ }
+}
+
+/* Print out a bad command string, including a hex
+ * representation of non-printable characters.
+ * Non-printable characters show as "\0xXX".
+ */
+static void print_bad_command(char *cmd_string)
+{
+ if (cmd_string != NULL)
+ {
+ unsigned char *c = (unsigned char *)cmd_string;
+ (void)PRINTF("command '");
+ while (*c != (unsigned char)'\0')
+ {
+ if (isprint(*c) != 0)
+ {
+ (void)PRINTF("%c", *c);
+ }
+ else
+ {
+ (void)PRINTF("\\0x%x", *c);
+ }
+ ++c;
+ }
+ (void)PRINTF("' not found\r\n");
+ }
+}
+
+/* Ticker function for polling the UART for character input. */
+static void console_tick(void)
+{
+ int ret;
+
+ if (cli.cli_inbuf == NULL)
+ {
+ ret = cli_get_cmd_buffer(&cli.cli_inbuf);
+ if (ret != WM_SUCCESS)
+ {
+ return;
+ }
+ cli.bp = 0;
+ }
+
+ if (cli.input_enabled == 1)
+ {
+ ret = get_input(cli.cli_inbuf, &cli.bp);
+ if (ret == 1)
+ {
+ cli.input_enabled = 0;
+ ret = cli_submit_cmd_buffer(&cli.cli_inbuf);
+ cli.cli_inbuf = NULL;
+ if (ret != WM_SUCCESS)
+ {
+ (void)PRINTF(
+ "Error: problem sending cli message"
+ "\r\n");
+ }
+ cli.input_enabled = 1;
+ }
+ }
+}
+
+/* Main CLI processing thread
+ *
+ * Waits to receive a command buffer pointer from an input collector, and
+ * then processes. Note that it must cleanup the buffer when done with it.
+ *
+ * Input collectors handle their own lexical analysis and must pass complete
+ * command lines to CLI.
+ */
+static void cli_main(os_thread_arg_t data)
+{
+ while (true)
+ {
+ int ret;
+ char *msg;
+
+ msg = NULL;
+ ret = os_queue_recv(&cli.input_queue, &msg, RX_WAIT);
+ if (ret != WM_SUCCESS)
+ {
+ if (ret == (int)WM_E_BADF)
+ {
+ (void)PRINTF(
+ "Error: CLI fatal queue error."
+ "\r\n");
+ /* Special case fatal errors. Shouldn't happen. If it does
+ * it means CLI is fatally corrupted, so end the thread.
+ */
+ return;
+ }
+ /* A number of other non-fatal conditions can cause us to get here]
+ * without a message to process, if so, just go back and wait.
+ */
+ continue;
+ }
+
+ /* HALT message indicates that this thread will be deleted
+ * shortly. Hence this function need to do necessary actions
+ * required before getting deleted.
+ * HALT message is not dynamically allocated,
+ * hence msg doesn't need to be freed up in that case.
+ */
+ if (msg != NULL)
+ {
+ if (strcmp(msg, HALT_MSG) == 0)
+ {
+ break;
+ }
+ ret = handle_input(msg);
+ if (ret == 1)
+ {
+ print_bad_command(msg);
+ }
+ else if (ret == 2)
+ {
+ (void)PRINTF("syntax error\r\n");
+ }
+ else
+ { /* Do Nothing */
+ }
+ (void)PRINTF(PROMPT);
+ /* done with it, clean up the message (we own it) */
+ (void)cli_mem_free(&msg);
+ }
+ }
+ os_thread_self_complete(NULL);
+}
+/* Automatically bind an input processor to the console */
+static int cli_install_UART_Tick(void)
+{
+ return os_setup_idle_function(console_tick);
+}
+
+static int cli_remove_UART_Tick(void)
+{
+ return os_remove_idle_function(console_tick);
+}
+
+/* Internal cleanup function. */
+static int __cli_cleanup(void)
+{
+ int ret, final = WM_SUCCESS;
+ char *halt_msg = HALT_MSG;
+
+ if (cli_remove_UART_Tick() != WM_SUCCESS)
+ {
+ (void)PRINTF(
+ "Error: could not remove UART Tick function."
+ "\r\n");
+ final = -WM_FAIL;
+ }
+
+ ret = cli_submit_cmd_buffer(&halt_msg);
+ if (ret != WM_SUCCESS)
+ {
+ (void)PRINTF(
+ "Error: problem sending cli message"
+ "\r\n");
+ }
+ (void)os_mutex_get(&cli_mutex, OS_WAIT_FOREVER);
+ ret = os_queue_delete(&cli.input_queue);
+ if (ret != WM_SUCCESS)
+ {
+ (void)PRINTF("Warning: failed to delete queue.\r\n");
+ final = -WM_FAIL;
+ }
+
+ if (cli.cli_inbuf != NULL)
+ {
+ (void)cli_mem_free(&cli.cli_inbuf);
+ }
+
+ ret = cli_mem_cleanup();
+ if (ret != WM_SUCCESS)
+ {
+ final = -WM_FAIL;
+ }
+
+ ret = os_thread_delete(&cli_main_thread);
+ if (ret != WM_SUCCESS)
+ {
+ (void)PRINTF("Warning: failed to delete thread.\r\n");
+ final = -WM_FAIL;
+ }
+ (void)os_mutex_put(&cli_mutex);
+ (void)os_mutex_delete(&cli_mutex);
+ cli.initialized = false;
+ return final;
+}
+
+/* Initialize and start the main thread */
+static int cli_start(void)
+{
+ int ret;
+
+ if (cli.initialized == true)
+ {
+ return WM_SUCCESS;
+ }
+
+ ret = os_mutex_create(&cli_mutex, "cli", OS_MUTEX_INHERIT);
+ if (ret != WM_SUCCESS)
+ {
+ return -WM_FAIL;
+ }
+
+ ret = os_queue_create(&cli.input_queue, "cli_queue", (int)sizeof(void *), &cli.in_queue_data);
+ if (ret != WM_SUCCESS)
+ {
+ (void)PRINTF("Error: Failed to create cli queue: %d\r\n", ret);
+ return -WM_FAIL;
+ }
+
+ ret = os_thread_create(&cli_main_thread, "cli", cli_main, NULL, &cli_stack, OS_PRIO_3);
+ if (ret != WM_SUCCESS)
+ {
+ (void)PRINTF("Error: Failed to create cli thread: %d\r\n", ret);
+ return -WM_FAIL;
+ }
+
+ ret = cli_mem_init();
+
+ if (ret != WM_SUCCESS)
+ {
+ return -WM_FAIL;
+ }
+
+ cli.initialized = true;
+
+ return WM_SUCCESS;
+}
+
+/* Stop the thread and cleanup */
+int cli_stop(void)
+{
+ if (cli.initialized == false)
+ {
+ return -WM_FAIL;
+ }
+
+ return __cli_cleanup();
+}
+
+/*
+ * Command buffer API
+ */
+
+/* Get a command buffer */
+int cli_get_cmd_buffer(char **buff)
+{
+ *buff = cli_mem_malloc((int)INBUF_SIZE);
+ if (*buff == NULL)
+ {
+ return -WM_FAIL;
+ }
+
+ return WM_SUCCESS;
+}
+
+/* Submit a command buffer to the main thread for processing */
+int cli_submit_cmd_buffer(char **buff)
+{
+ int ret = -WM_FAIL;
+ int final = WM_SUCCESS;
+
+ if (buff == NULL)
+ {
+ (void)PRINTF("Error: release_cmd_buffer given NULL buff\r\n");
+ return -WM_FAIL;
+ }
+
+ if (cli.initialized != false)
+ {
+ ret = os_queue_send(&cli.input_queue, (void *)buff, SEND_WAIT);
+ }
+
+ if (ret != WM_SUCCESS)
+ {
+ final = -WM_FAIL;
+ }
+ return final;
+}
+
+/* Built-in "help" command: prints all registered commands and their help
+ * text string, if any. */
+void help_command(int argc, char **argv)
+{
+ unsigned int i = 0, n = 0;
+
+ (void)PRINTF("\r\n");
+ while (i < MAX_COMMANDS && n < cli.num_commands)
+ {
+ if (cli.commands[i]->name != NULL)
+ {
+ (void)PRINTF("%s %s\r\n", cli.commands[i]->name,
+ cli.commands[i]->help != NULL ? cli.commands[i]->help : "");
+ n++;
+ }
+ i++;
+ }
+}
+
+#if 0
+static void echo_cmd_handler(int argc, char **argv)
+{
+ if (argc == 1) {
+ (void)PRINTF("Usage: echo on/off. Echo is currently %s\r\n",
+ cli.echo_disabled ? "Disabled" : "Enabled");
+ return;
+ }
+
+ if (!strcasecmp(argv[1], "on")) {
+ (void)PRINTF("Enable echo\r\n");
+ cli.echo_disabled = false;
+ } else if (!strcasecmp(argv[1], "off")) {
+ (void)PRINTF("Disable echo\r\n");
+ cli.echo_disabled = true;
+ } else
+ (void)PRINTF("Usage: echo on/off. Echo is currently %s\r\n",
+ cli.echo_disabled ? "Disabled" : "Enabled");
+}
+#endif
+
+
+
+static struct cli_command built_ins[] = {
+ {"help", NULL, help_command},
+};
+
+/*
+ * NXP Test Framework API
+ */
+
+int cli_register_command(const struct cli_command *command)
+{
+ unsigned int i;
+ if (command->name == NULL || command->function == NULL)
+ {
+ return 1;
+ }
+
+ if (cli.num_commands < MAX_COMMANDS)
+ {
+ /* Check if the command has already been registered.
+ * Return 0, if it has been registered.
+ */
+ for (i = 0; i < cli.num_commands; i++)
+ {
+ if (cli.commands[i] == command)
+ {
+ return 0;
+ }
+ }
+ cli.commands[cli.num_commands++] = command;
+ return 0;
+ }
+
+ return 1;
+}
+
+int cli_unregister_command(const struct cli_command *command)
+{
+ unsigned int i = 0;
+ if (command->name == NULL || command->function == NULL)
+ {
+ return 1;
+ }
+
+ while (i < cli.num_commands)
+ {
+ if (cli.commands[i] == command)
+ {
+ cli.num_commands--;
+ unsigned int remaining_cmds = cli.num_commands - i;
+ if (remaining_cmds > 0U)
+ {
+ (void)memmove(&cli.commands[i], &cli.commands[i + 1U], (remaining_cmds * sizeof(struct cli_command *)));
+ }
+ cli.commands[cli.num_commands] = NULL;
+ return 0;
+ }
+ i++;
+ }
+
+ return 1;
+}
+
+int cli_register_commands(const struct cli_command *commands, int num_commands)
+{
+ int i;
+ for (i = 0; i < num_commands; i++)
+ {
+ if (cli_register_command(commands++) != 0)
+ {
+ return 1;
+ }
+ }
+ return 0;
+}
+
+int cli_unregister_commands(const struct cli_command *commands, int num_commands)
+{
+ int i;
+ for (i = 0; i < num_commands; i++)
+ {
+ if (cli_unregister_command(commands++) != 0)
+ {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+
+int cli_init(void)
+{
+ static bool cli_init_done;
+ if (cli_init_done)
+ {
+ return WM_SUCCESS;
+ }
+
+ (void)memset((void *)&cli, 0, sizeof(cli));
+ cli.input_enabled = 1;
+ cli.in_queue_data = queue_data;
+
+ /* add our built-in commands */
+ if (cli_register_commands(&built_ins[0], (int)(sizeof(built_ins) / sizeof(struct cli_command))) != 0)
+ {
+ return -WM_FAIL;
+ }
+ if (cli_install_UART_Tick() != WM_SUCCESS)
+ {
+ (void)PRINTF(
+ "Error: could not install UART Tick function."
+ "\r\n");
+ return -WM_FAIL;
+ }
+ int ret = cli_start();
+ if (ret == WM_SUCCESS)
+ {
+ cli_init_done = true;
+ }
+ return ret;
+}
diff --git a/third-party/fsl_wifi/cli/cli_mem.h b/third-party/fsl_wifi/cli/cli_mem.h
new file mode 100644
index 0000000000000000000000000000000000000000..fb2b81bb97c81a2472c4e3dda20602342026effd
--- /dev/null
+++ b/third-party/fsl_wifi/cli/cli_mem.h
@@ -0,0 +1,45 @@
+/** @file cli_mem.h
+ *
+ * @brief Command Line Interface meory module
+ *
+ * Copyright 2008-2022 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#ifndef _CLI_MEM_H_
+#define _CLI_MEM_H_
+/** The original INBUF_SIZE is 256.
+ * When verifing maximum password length for WPA3,
+ * it will cause an "input buffer overflow" error, so it is expanded to 512.
+ */
+#define INBUF_SIZE 512
+
+#define BUF_ALLOCATED '1'
+#define BUF_AVAILABLE '0'
+/** Malloc some memory from the CLI's byte pool
+ */
+void *cli_mem_malloc(int size);
+
+/** Free previously allocated memory to the CLI's byte pool
+ */
+int cli_mem_free(char **buffer);
+
+/** Initialize the CLI memory module
+ *
+ * \note This function is called in the CLI initialization process
+ * itself. Applications need not call this function.
+ *
+ * \param void
+ * \return WM_SUCCESS on success, error code otherwise.
+ */
+int cli_mem_init(void);
+
+/** Initialize the CLI memory module
+ *
+ * \note This function is called in the CLI stop process
+ * itself. Applications need not call this function.
+ */
+int cli_mem_cleanup(void);
+#endif /* _CLI_MEM_H_ */
diff --git a/third-party/fsl_wifi/cli/cli_mem_simple.c b/third-party/fsl_wifi/cli/cli_mem_simple.c
new file mode 100644
index 0000000000000000000000000000000000000000..ad51f367b5ea93fab19e34c578f7ea3816af3d3f
--- /dev/null
+++ b/third-party/fsl_wifi/cli/cli_mem_simple.c
@@ -0,0 +1,83 @@
+/** @file cli_mem_simple.c
+ *
+ * @brief This file provides Simple memory allocation for cli
+ *
+ * Copyright 2008-2022 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/* cli_mem_simple.c: Simple memory allocation for cli
+ *
+ */
+#include
+#include
+
+#include
+#include
+#include
+
+#include "cli_mem.h"
+/* Simple memory allocator for Operating Systems that do not support dynamic
+ * allocation. The size of the allocation is hard-coded to the need of the cli
+ * module.
+ *
+ * If required this can be blown into a better slab-kind of allocator.
+ */
+
+static char buff1[INBUF_SIZE];
+static char buff2[INBUF_SIZE];
+static char alloc[2] = {BUF_AVAILABLE, BUF_AVAILABLE};
+
+int cli_mem_cleanup(void)
+{
+ return WM_SUCCESS;
+}
+
+int cli_mem_init(void)
+{
+ return WM_SUCCESS;
+}
+
+void *cli_mem_malloc(int size)
+{
+ /* Only supports fixed size = INBUF_SIZE */
+ if (size != INBUF_SIZE)
+ {
+ return NULL;
+ }
+
+ if (alloc[0] == BUF_AVAILABLE)
+ {
+ alloc[0] = BUF_ALLOCATED;
+ return buff1;
+ }
+ else if (alloc[1] == BUF_AVAILABLE)
+ {
+ alloc[1] = BUF_ALLOCATED;
+ return buff2;
+ }
+ else
+ {
+ return NULL;
+ }
+}
+
+int cli_mem_free(char **buffer)
+{
+ if (*buffer == buff1)
+ {
+ alloc[0] = BUF_AVAILABLE;
+ }
+ else if (*buffer == buff2)
+ {
+ alloc[1] = BUF_AVAILABLE;
+ }
+ else
+ { /* Do Nothing */
+ }
+
+ *buffer = NULL;
+ return WM_SUCCESS;
+}
diff --git a/third-party/fsl_wifi/cli/cli_utils.c b/third-party/fsl_wifi/cli/cli_utils.c
new file mode 100644
index 0000000000000000000000000000000000000000..3c1b88beefbe90f44e509e40f302ac6aae590eb9
--- /dev/null
+++ b/third-party/fsl_wifi/cli/cli_utils.c
@@ -0,0 +1,217 @@
+/** @file cli_utils.c
+ *
+ * @brief This file provides Convenience functions for the CLI
+ *
+ * Copyright 2008-2022 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/* cli_utils.c: Convenience functions for the CLI
+ *
+ */
+#include
+#include
+
+#include
+#include
+#include
+#include /* for errno */
+
+bool string_equal(const char *s1, const char *s2)
+{
+ size_t len = strlen(s1);
+
+ if (len == strlen(s2) && (strncmp(s1, s2, len) == 0))
+ {
+ return true;
+ }
+ return false;
+}
+
+/**
+ *@brief convert char to hex integer
+ *
+ *@param chr char
+ *@return hex integer
+ **/
+unsigned char hexc2bin(char chr)
+{
+ if (chr >= '0' && chr <= '9')
+ {
+ chr -= '0';
+ }
+ else if (chr >= 'A' && chr <= 'F')
+ {
+ chr -= ('A' - 10);
+ }
+ else if (chr >= 'a' && chr <= 'f')
+ {
+ chr -= ('a' - 10);
+ }
+ else
+ { /* Do Nothing */
+ }
+ return (uint8_t)chr;
+}
+
+/**
+ *@brief convert string to hex integer
+ *
+ *@param s A pointer string buffer
+ *@return hex integer
+ **/
+unsigned int a2hex(const char *s)
+{
+ uint32_t val = 0;
+
+ if (strncasecmp("0x", s, 2) == 0)
+ {
+ s += 2;
+ }
+
+ while ((*s != '\0') && (isxdigit((unsigned char)(*s)) != 0))
+ {
+ val = (val << 4) + hexc2bin(*s++);
+ }
+ return val;
+}
+
+/*
+ * @brief convert String to integer
+ *
+ *@param value A pointer to string
+ *@return integer
+ **/
+unsigned int a2hex_or_atoi(char *value)
+{
+ unsigned int ret = 0;
+
+ if (value[0] == '0' && (value[1] == 'X' || value[1] == 'x'))
+ {
+ ret = a2hex(value + 2);
+ }
+ else if (isdigit((unsigned char)*value) != 0)
+ {
+ errno = 0;
+ ret = (uint32_t)strtol(value, NULL, 10);
+ if (errno != 0)
+ {
+ (void)PRINTF("Error during strtoul errno:%d", errno);
+ }
+ }
+ else
+ {
+ ret = (uint32_t)(*value);
+ }
+ return ret;
+}
+
+bool get_uint(const char *arg, unsigned int *dest, unsigned int len)
+{
+ unsigned int i;
+ unsigned int val = 0;
+
+ for (i = 0; i < len; i++)
+ {
+ if (arg[i] < '0' || arg[i] > '9')
+ {
+ return true;
+ }
+ val *= 10U;
+ val += (unsigned int)arg[i] - (unsigned int)'0';
+ }
+
+ *dest = val;
+ return false;
+}
+
+/* Parse string 'arg' formatted "AA:BB:CC:DD:EE:FF" (assuming 'sep' is ':')
+ * into a 6-byte array 'dest' such that dest = {0xAA,0xBB,0xCC,0xDD,0xEE,0xFF}
+ * set 'sep' accordingly. */
+bool get_mac(const char *arg, char *dest, char sep)
+{
+ unsigned char n;
+ int i, j, k = 0;
+ int l = 0;
+
+ if (strlen(arg) < 17U)
+ {
+ return true;
+ }
+
+ (void)memset(dest, 0, 6);
+
+ for (i = 0; i < 17; i += 3)
+ {
+ for (j = 0; j < 2; j++)
+ {
+ if (arg[i + j] >= '0' && arg[i + j] <= '9')
+ {
+ n = (unsigned char)(arg[i + j]) - (unsigned char)'0';
+ }
+ else if (arg[i + j] >= 'A' && arg[i + j] <= 'F')
+ {
+ n = (unsigned char)(arg[i + j]) - (unsigned char)'A' + (unsigned char)10;
+ }
+ else if (arg[i + j] >= 'a' && arg[i + j] <= 'f')
+ {
+ n = (unsigned char)(arg[i + j]) - (unsigned char)'a' + (unsigned char)10;
+ }
+ else
+ {
+ return true;
+ }
+
+ l = 1 - j;
+
+ n <<= (unsigned int)4 * (unsigned int)l;
+ dest[k] += n;
+ }
+ if (i < 15 && arg[i + 2] != sep)
+ {
+ return true;
+ }
+ k++;
+ }
+
+ return false;
+}
+
+/* Non-reentrant getopt implementation */
+int cli_optind = 0;
+char *cli_optarg = NULL;
+int cli_getopt(int argc, char **argv, const char *fmt)
+{
+ char *opt, *c;
+
+ if (cli_optind == argc)
+ {
+ return -1;
+ }
+ cli_optarg = NULL;
+ opt = argv[cli_optind];
+ if (opt[0] != '-')
+ {
+ return -1;
+ }
+ if (opt[0] == '\0' || opt[1] == '\0')
+ {
+ return (int)'?';
+ }
+ cli_optind++;
+ c = strchr(fmt, (int)opt[1]);
+ if (c == NULL)
+ {
+ return (int)opt[1];
+ }
+ if (c[1] == ':')
+ {
+ if (cli_optind < argc)
+ {
+ cli_optarg = argv[cli_optind++];
+ }
+ }
+ return (int)c[0];
+}
diff --git a/third-party/fsl_wifi/design.md b/third-party/fsl_wifi/design.md
new file mode 100644
index 0000000000000000000000000000000000000000..077b51c8274bcdad143c35b5f792a3471273ac08
--- /dev/null
+++ b/third-party/fsl_wifi/design.md
@@ -0,0 +1,19 @@
+# Wifi 仓库介绍
+
+## certs
+
+## cli
+
+## dhcpd
+
+## incl
+
+## nw_utils
+
+## port
+
+## wifi_bt_firmware
+
+## wifidriver
+
+## wlcmgr
\ No newline at end of file
diff --git a/third-party/fsl_wifi/dhcpd/dhcp-bootp.h b/third-party/fsl_wifi/dhcpd/dhcp-bootp.h
new file mode 100644
index 0000000000000000000000000000000000000000..b21814abaf8fa989b1cc03e8b126414266a9fd0e
--- /dev/null
+++ b/third-party/fsl_wifi/dhcpd/dhcp-bootp.h
@@ -0,0 +1,96 @@
+/** @file dhcp-bootp.h
+ *
+ * @brief BOOTP Header
+ *
+ * Copyright 2008-2020 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#ifndef __DHCP_BOOTP_H_
+#define __DHCP_BOOTP_H_
+
+#define DHCP_SERVER_PORT 67
+#define DHCP_CLIENT_PORT 68
+
+#define NAMESERVER_PORT 53
+
+#define BOOTP_OP_REQUEST 1
+#define BOOTP_OP_RESPONSE 2
+
+#define BOOTP_OPTION_SUBNET_MASK 1
+#define BOOTP_OPTION_ROUTER 3
+#define BOOTP_OPTION_NAMESERVER 6
+#define BOOTP_OPTION_REQUESTED_IP 50
+#define BOOTP_OPTION_ADDRESS_TIME 51
+#define BOOTP_OPTION_DHCP_MESSAGE 53U
+#define BOOTP_OPTION_DHCP_SERVER_ID 54
+#define BOOTP_END_OPTION 0xFF
+
+enum dhcp_message_type
+{
+ DHCP_MESSAGE_DISCOVER = 1,
+ DHCP_MESSAGE_OFFER = 2,
+ DHCP_MESSAGE_REQUEST = 3,
+ DHCP_MESSAGE_DECLINE = 4,
+ DHCP_MESSAGE_ACK = 5,
+ DHCP_MESSAGE_NAK = 6,
+ DHCP_MESSAGE_RELEASE = 7,
+ DHCP_MESSAGE_INFORM = 8,
+ DHCP_NO_RESPONSE = 255
+};
+
+PACK_START struct bootp_header
+{
+ uint8_t op; /* message type */
+ uint8_t htype; /* hardware type (1 = ethernet) */
+ uint8_t hlen; /* hardware address length (6) */
+ uint8_t hops; /* (0) */
+ uint32_t xid; /* transaction ID */
+ uint16_t secs; /* seconds elapsed */
+ uint16_t flags; /* bootp flags */
+ uint32_t ciaddr; /* client IP address */
+ uint32_t yiaddr; /* your IP address */
+ uint32_t siaddr; /* next server IP address */
+ uint32_t riaddr; /* relay agent IP address */
+ uint8_t chaddr[6]; /* client MAC address */
+ uint8_t pad[10 + 192]; /* 10 octets of padding, 192 octets of
+ padding */
+ uint32_t cookie; /* magic cookie */
+} PACK_END;
+
+PACK_START struct bootp_option
+{
+ uint8_t type;
+ uint8_t length;
+ char value[0];
+} PACK_END;
+#define ETH_P_RARP 0x8035
+
+#define ETH_HW_ADDR_LEN 6
+#define IP_ADDR_LEN 4
+#define ARP_FRAME_TYPE 0x0806
+#define ETHER_HW_TYPE 1
+#define IP_PROTO_TYPE 0x0800
+#define OP_ARP_REQUEST 2
+#define SOCK_PACKET 10
+
+struct arp_packet
+{
+ uint8_t targ_hw_addr[ETH_HW_ADDR_LEN];
+ uint8_t src_hw_addr[ETH_HW_ADDR_LEN];
+ uint16_t frame_type;
+ uint16_t hw_type;
+ uint16_t prot_type;
+ uint8_t hw_addr_size;
+ uint8_t prot_addr_size;
+ uint16_t op;
+ uint8_t sndr_hw_addr[ETH_HW_ADDR_LEN];
+ char sndr_ip_addr[IP_ADDR_LEN];
+ uint8_t rcpt_hw_addr[ETH_HW_ADDR_LEN];
+ char rcpt_ip_addr[IP_ADDR_LEN];
+ uint8_t padding[18];
+};
+
+#endif
diff --git a/third-party/fsl_wifi/dhcpd/dhcp-priv.h b/third-party/fsl_wifi/dhcpd/dhcp-priv.h
new file mode 100644
index 0000000000000000000000000000000000000000..6b382265d5af363acfec35aa807fff3002f9682b
--- /dev/null
+++ b/third-party/fsl_wifi/dhcpd/dhcp-priv.h
@@ -0,0 +1,52 @@
+/** @file dhcp-priv.h
+ *
+ * @brief DHCP PVT Header
+ *
+ * Copyright 2008-2020 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#ifndef __DHCP_PRIV_H__
+#define __DHCP_PRIV_H__
+
+#include
+
+#define dhcp_e(...) wmlog_e("dhcp", ##__VA_ARGS__)
+#define dhcp_w(...) wmlog_w("dhcp", ##__VA_ARGS__)
+
+#define dhcp_d(...)
+
+#define SERVER_BUFFER_SIZE 1024
+#define MAC_IP_CACHE_SIZE 8
+#define SEND_RESPONSE(w, x, y, z) dhcp_send_response(w, x, y, z)
+
+struct client_mac_cache
+{
+ uint8_t client_mac[6]; /* mac address of the connected device */
+ uint32_t client_ip; /* ip address of the connected device */
+};
+
+struct dhcp_server_data
+{
+ int sock;
+ int count_clients; /* to keep count of cached devices */
+ char msg[SERVER_BUFFER_SIZE];
+ struct sockaddr_in saddr; /* dhcp server address */
+ struct sockaddr_in baddr; /* broadcast address */
+ struct client_mac_cache ip_mac_mapping[MAC_IP_CACHE_SIZE];
+ uint32_t netmask; /* network order */
+ uint32_t my_ip; /* network order */
+ uint32_t client_ip; /* last address that was requested, network
+ * order */
+ uint32_t current_ip; /* keep track of assigned IP addresses */
+};
+
+int dhcp_server_init(void *intrfc_handle);
+void dhcp_server(os_thread_arg_t data);
+int dhcp_send_halt(void);
+int dhcp_free_allocations(void);
+int dhcp_create_and_bind_udp_socket(struct sockaddr_in *address, void *intrfc_handle);
+int dhcp_send_response(int sock, struct sockaddr *addr, char *msg, int len);
+#endif
diff --git a/third-party/fsl_wifi/dhcpd/dhcp-server-cli.c b/third-party/fsl_wifi/dhcpd/dhcp-server-cli.c
new file mode 100644
index 0000000000000000000000000000000000000000..d1b54a2622ab7c23b91f73a79b8b2b8a1518f155
--- /dev/null
+++ b/third-party/fsl_wifi/dhcpd/dhcp-server-cli.c
@@ -0,0 +1,48 @@
+/** @file dhcp-server-cli.c
+ *
+ * @brief This file provides CLI based APIs for the DHCP Server
+ *
+ * Copyright 2008-2020 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/** dhcp-server-main.c: CLI based APIs for the DHCP Server
+ */
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+#include "dhcp-priv.h"
+
+/*
+ * Command-Line Interface
+ */
+static void test_dhcp_stat(int argc, char **argv)
+{
+ dhcp_stat();
+}
+
+static struct cli_command dhcp_cmds[] = {
+ {"dhcp-stat", NULL, test_dhcp_stat},
+};
+
+int dhcpd_cli_init(void)
+{
+ u8_t i;
+
+ for (i = 0; i < sizeof(dhcp_cmds) / sizeof(struct cli_command); i++)
+ {
+ if (cli_register_command(&dhcp_cmds[i]) != 0)
+ {
+ return -WM_E_DHCPD_REGISTER_CMDS;
+ }
+ }
+
+ return WM_SUCCESS;
+}
diff --git a/third-party/fsl_wifi/dhcpd/dhcp-server-main.c b/third-party/fsl_wifi/dhcpd/dhcp-server-main.c
new file mode 100644
index 0000000000000000000000000000000000000000..5124cfa409dd24b74ddf6e6a1260d90466950e1b
--- /dev/null
+++ b/third-party/fsl_wifi/dhcpd/dhcp-server-main.c
@@ -0,0 +1,78 @@
+/** @file dhcp-server-main.c
+ *
+ * @brief This file provides CLI based APIs for the DHCP Server
+ *
+ * Copyright 2008-2022 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/** dhcp-server-main.c: CLI based APIs for the DHCP Server
+ */
+#include
+
+#include
+#include
+#include
+
+#include "dhcp-priv.h"
+
+static os_thread_t dhcpd_thread;
+static os_thread_stack_define(dhcp_stack, 2048);
+static bool dhcpd_running;
+/*
+ * API
+ */
+
+int dhcp_server_start(void *intrfc_handle)
+{
+ int ret;
+
+ dhcp_d("DHCP server start request");
+ if (dhcpd_running)
+ {
+ return -WM_E_DHCPD_SERVER_RUNNING;
+ }
+ ret = dhcp_server_init(intrfc_handle);
+ if (ret != WM_SUCCESS)
+ {
+ dhcp_e("Failed to initialize dhcp server");
+ return ret;
+ }
+
+ ret = os_thread_create(&dhcpd_thread, "dhcp-server", dhcp_server, NULL, &dhcp_stack, OS_PRIO_3);
+ if (ret != 0)
+ {
+ (void)dhcp_free_allocations();
+ return -WM_E_DHCPD_THREAD_CREATE;
+ }
+
+ dhcpd_running = 1;
+ return WM_SUCCESS;
+}
+
+void dhcp_server_stop(void)
+{
+ dhcp_d("DHCP server stop request");
+ if (dhcpd_running)
+ {
+ if (dhcp_send_halt() != WM_SUCCESS)
+ {
+ dhcp_w("failed to send halt to DHCP thread");
+ return;
+ }
+
+ os_thread_sleep(os_msec_to_ticks(50));
+
+ if (os_thread_delete(&dhcpd_thread) != WM_SUCCESS)
+ {
+ dhcp_w("failed to delete thread");
+ }
+ dhcpd_running = 0;
+ }
+ else
+ {
+ dhcp_w("server not dhcpd_running.");
+ }
+}
diff --git a/third-party/fsl_wifi/dhcpd/dhcp-server.c b/third-party/fsl_wifi/dhcpd/dhcp-server.c
new file mode 100644
index 0000000000000000000000000000000000000000..3e59cd656c8f5f79d066f96929dab5603ba999f6
--- /dev/null
+++ b/third-party/fsl_wifi/dhcpd/dhcp-server.c
@@ -0,0 +1,828 @@
+/** @file dhcp-server.c
+ *
+ * @brief This file provides the DHCP Server
+ *
+ * Copyright 2008-2023 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/** dhcp-server.c: The DHCP Server
+ */
+#include
+
+#include
+#include
+#include
+#include
+
+#include "dhcp-bootp.h"
+#include "dns.h"
+#include "dhcp-priv.h"
+
+#define DEFAULT_DHCP_ADDRESS_TIMEOUT (24U * 60U * 60U * 1U) /* 1 day */
+#define CLIENT_IP_NOT_FOUND 0x00000000U
+
+uint32_t dhcp_address_timeout = DEFAULT_DHCP_ADDRESS_TIMEOUT;
+static os_mutex_t dhcpd_mutex;
+static int ctrl = -1;
+#define CTRL_PORT 12679
+static char ctrl_msg[16];
+
+struct dhcp_server_data dhcps;
+static void get_broadcast_addr(struct sockaddr_in *addr);
+static int get_ip_addr_from_interface(uint32_t *ip, void *interface_handle);
+static int get_netmask_from_interface(uint32_t *nm, void *interface_handle);
+static int send_gratuitous_arp(uint32_t ip);
+static int ac_add(uint8_t *chaddr, uint32_t client_ip);
+static uint32_t ac_lookup_mac(uint8_t *chaddr);
+static uint8_t *ac_lookup_ip(uint32_t client_ip);
+static bool ac_not_full(void);
+
+static int ac_add(uint8_t *chaddr, uint32_t client_ip)
+{
+ /* adds ip-mac mapping in cache */
+ if (ac_not_full())
+ {
+ dhcps.ip_mac_mapping[dhcps.count_clients].client_mac[0] = chaddr[0];
+ dhcps.ip_mac_mapping[dhcps.count_clients].client_mac[1] = chaddr[1];
+ dhcps.ip_mac_mapping[dhcps.count_clients].client_mac[2] = chaddr[2];
+ dhcps.ip_mac_mapping[dhcps.count_clients].client_mac[3] = chaddr[3];
+ dhcps.ip_mac_mapping[dhcps.count_clients].client_mac[4] = chaddr[4];
+ dhcps.ip_mac_mapping[dhcps.count_clients].client_mac[5] = chaddr[5];
+ dhcps.ip_mac_mapping[dhcps.count_clients].client_ip = client_ip;
+ dhcps.count_clients++;
+ return WM_SUCCESS;
+ }
+ return -WM_FAIL;
+}
+
+static uint32_t ac_lookup_mac(uint8_t *chaddr)
+{
+ /* returns ip address, if mac address is present in cache */
+ int i;
+ for (i = 0; i < dhcps.count_clients && i < MAC_IP_CACHE_SIZE; i++)
+ {
+ if ((dhcps.ip_mac_mapping[i].client_mac[0] == chaddr[0]) &&
+ (dhcps.ip_mac_mapping[i].client_mac[1] == chaddr[1]) &&
+ (dhcps.ip_mac_mapping[i].client_mac[2] == chaddr[2]) &&
+ (dhcps.ip_mac_mapping[i].client_mac[3] == chaddr[3]) &&
+ (dhcps.ip_mac_mapping[i].client_mac[4] == chaddr[4]) &&
+ (dhcps.ip_mac_mapping[i].client_mac[5] == chaddr[5]))
+ {
+ return dhcps.ip_mac_mapping[i].client_ip;
+ }
+ }
+ return CLIENT_IP_NOT_FOUND;
+}
+
+static uint8_t *ac_lookup_ip(uint32_t client_ip)
+{
+ /* returns mac address, if ip address is present in cache */
+ int i;
+ for (i = 0; i < dhcps.count_clients && i < MAC_IP_CACHE_SIZE; i++)
+ {
+ if ((dhcps.ip_mac_mapping[i].client_ip) == client_ip)
+ {
+ return dhcps.ip_mac_mapping[i].client_mac;
+ }
+ }
+ return NULL;
+}
+
+static bool ac_not_full(void)
+{
+ /* returns true if cache is not full */
+ return (dhcps.count_clients < MAC_IP_CACHE_SIZE);
+}
+
+static bool ac_valid_ip(uint32_t requested_ip)
+{
+ /* skip over our own address, the network address or the
+ * broadcast address
+ */
+ if (requested_ip == ntohl(dhcps.my_ip) || (requested_ip == ntohl(dhcps.my_ip & dhcps.netmask)) ||
+ (requested_ip == ntohl((dhcps.my_ip | (0xffffffff & ~dhcps.netmask)))))
+ {
+ return false;
+ }
+ if (ac_lookup_ip(htonl(requested_ip)) != NULL)
+ {
+ return false;
+ }
+ return true;
+}
+
+static void write_u32(char *dest, uint32_t be_value)
+{
+ *dest++ = be_value & 0xFFU;
+ *dest++ = (be_value >> 8) & 0xFFU;
+ *dest++ = (be_value >> 16) & 0xFFU;
+ *dest = be_value >> 24;
+}
+
+/* Configure the DHCP dynamic IP lease time*/
+int dhcp_server_lease_timeout(uint32_t val)
+{
+ if ((val == 0U) || (val > (60U * 60U * 24U * 49700U)))
+ {
+ return -EINVAL;
+ }
+ else
+ {
+ dhcp_address_timeout = val;
+ return WM_SUCCESS;
+ }
+}
+
+/* calculate the address to give out to the next DHCP DISCOVER request
+ *
+ * DHCP clients will be assigned addresses in sequence in the subnet's address space.
+ */
+static unsigned int next_yiaddr(void)
+{
+ uint32_t new_ip;
+ struct bootp_header *hdr = (struct bootp_header *)(void *)dhcps.msg;
+
+ /* if device requesting for ip address is already registered,
+ * if yes, assign previous ip address to it
+ */
+ new_ip = ac_lookup_mac(hdr->chaddr);
+ if (new_ip == (CLIENT_IP_NOT_FOUND))
+ {
+ /* next IP address in the subnet */
+ dhcps.current_ip = ntohl(dhcps.my_ip & dhcps.netmask) | ((dhcps.current_ip + 1U) & ntohl(~dhcps.netmask));
+ while (!ac_valid_ip(dhcps.current_ip))
+ {
+ dhcps.current_ip = ntohl(dhcps.my_ip & dhcps.netmask) | ((dhcps.current_ip + 1) & ntohl(~dhcps.netmask));
+ }
+
+ new_ip = htonl(dhcps.current_ip);
+
+ if (ac_add(hdr->chaddr, new_ip) != WM_SUCCESS)
+ {
+ dhcp_w("No space to store new mapping..");
+ }
+ }
+
+
+ return new_ip;
+}
+
+static unsigned int make_response(char *msg, enum dhcp_message_type type)
+{
+ struct bootp_header *hdr;
+ struct bootp_option *opt;
+ char *offset = msg;
+
+ hdr = (struct bootp_header *)(void *)offset;
+ hdr->op = BOOTP_OP_RESPONSE;
+ hdr->htype = 1;
+ hdr->hlen = 6;
+ hdr->hops = 0;
+ hdr->ciaddr = 0;
+ hdr->yiaddr = (type == DHCP_MESSAGE_ACK) ? dhcps.client_ip : 0U;
+ hdr->yiaddr = (type == DHCP_MESSAGE_OFFER) ? next_yiaddr() : hdr->yiaddr;
+ hdr->siaddr = 0;
+ hdr->riaddr = 0;
+ offset += sizeof(struct bootp_header);
+
+ opt = (struct bootp_option *)(void *)offset;
+ opt->type = BOOTP_OPTION_DHCP_MESSAGE;
+ *(uint8_t *)opt->value = (uint8_t)type;
+ opt->length = 1;
+ offset += sizeof(struct bootp_option) + opt->length;
+
+ if (type == DHCP_MESSAGE_NAK)
+ {
+ return (unsigned int)(offset - msg);
+ }
+
+ opt = (struct bootp_option *)(void *)offset;
+ opt->type = BOOTP_OPTION_SUBNET_MASK;
+ write_u32(opt->value, dhcps.netmask);
+ opt->length = 4;
+ offset += sizeof(struct bootp_option) + opt->length;
+
+ opt = (struct bootp_option *)(void *)offset;
+ opt->type = BOOTP_OPTION_ADDRESS_TIME;
+ write_u32(opt->value, htonl(dhcp_address_timeout));
+ opt->length = 4;
+ offset += sizeof(struct bootp_option) + opt->length;
+
+ opt = (struct bootp_option *)(void *)offset;
+ opt->type = BOOTP_OPTION_DHCP_SERVER_ID;
+ write_u32(opt->value, dhcps.my_ip);
+ opt->length = 4;
+ offset += sizeof(struct bootp_option) + opt->length;
+
+ opt = (struct bootp_option *)(void *)offset;
+ opt->type = BOOTP_OPTION_ROUTER;
+ write_u32(opt->value, dhcps.my_ip);
+ opt->length = 4;
+ offset += sizeof(struct bootp_option) + opt->length;
+
+ opt = (struct bootp_option *)(void *)offset;
+ opt->type = BOOTP_OPTION_NAMESERVER;
+ write_u32(opt->value, dns_get_nameserver());
+ opt->length = 4;
+ offset += sizeof(struct bootp_option) + opt->length;
+
+ opt = (struct bootp_option *)(void *)offset;
+ opt->type = BOOTP_END_OPTION;
+ offset++;
+
+ return (unsigned int)(offset - msg);
+}
+
+int dhcp_get_ip_from_mac(uint8_t *client_mac, uint32_t *client_ip)
+{
+ *client_ip = ac_lookup_mac(client_mac);
+ if (*client_ip == CLIENT_IP_NOT_FOUND)
+ {
+ return -WM_FAIL;
+ }
+ return WM_SUCCESS;
+}
+
+int dhcp_send_response(int sock, struct sockaddr *addr, char *msg, int len)
+{
+ int nb;
+ unsigned int sent = 0;
+ while (sent < len)
+ {
+ nb = sendto(sock, msg + sent, len - sent, 0, addr, sizeof(struct sockaddr_in));
+ if (nb < 0)
+ {
+ dhcp_e("failed to send response");
+ return -WM_E_DHCPD_RESP_SEND;
+ }
+ sent += nb;
+ }
+
+ dhcp_d("sent response, %d bytes %s", sent, inet_ntoa(((struct sockaddr_in *)addr)->sin_addr));
+ return WM_SUCCESS;
+}
+
+static int process_dhcp_message(char *msg, int len)
+{
+ struct bootp_header *hdr;
+ struct bootp_option *opt;
+ uint8_t response_type = (uint8_t)DHCP_NO_RESPONSE;
+ unsigned int consumed = 0;
+ bool got_ip = 0;
+ bool need_ip = 0;
+ int ret = WM_SUCCESS;
+ bool got_client_ip = 0;
+ uint32_t new_ip;
+
+ if ((msg == NULL) || len < sizeof(struct bootp_header) + sizeof(struct bootp_option) + 1U)
+ {
+ return -WM_E_DHCPD_INVALID_INPUT;
+ }
+
+ hdr = (struct bootp_header *)(void *)msg;
+
+ switch (hdr->op)
+ {
+ case BOOTP_OP_REQUEST:
+ dhcp_d("bootp request");
+ break;
+ case BOOTP_OP_RESPONSE:
+ dhcp_d("bootp response");
+ break;
+ default:
+ dhcp_e("invalid op code: %d", hdr->op);
+ return -WM_E_DHCPD_INVALID_OPCODE;
+ }
+
+ if (hdr->htype != 1U || hdr->hlen != 6U)
+ {
+ dhcp_e("invalid htype or hlen");
+ return -WM_E_DHCPD_INCORRECT_HEADER;
+ }
+
+ dhcp_d("client MAC: %02X:%02X:%02X:%02X:%02X:%02X", hdr->chaddr[0], hdr->chaddr[1], hdr->chaddr[2], hdr->chaddr[3],
+ hdr->chaddr[4], hdr->chaddr[5]);
+
+ dhcp_d("magic cookie: 0x%X", hdr->cookie);
+
+ len -= sizeof(struct bootp_header);
+ opt = (struct bootp_option *)(void *)(msg + sizeof(struct bootp_header));
+ while (len > 0 && opt->type != BOOTP_END_OPTION)
+ {
+ if (opt->type == BOOTP_OPTION_DHCP_MESSAGE && opt->length == 1U)
+ {
+ dhcp_d("found DHCP message option");
+ switch (*(uint8_t *)opt->value)
+ {
+ case DHCP_MESSAGE_DISCOVER:
+ dhcp_d("DHCP discover");
+ response_type = (uint8_t)DHCP_MESSAGE_OFFER;
+ break;
+
+ case DHCP_MESSAGE_REQUEST:
+ dhcp_d("DHCP request");
+ need_ip = 1;
+ if (hdr->ciaddr != 0x0000000U)
+ {
+ dhcps.client_ip = hdr->ciaddr;
+ got_client_ip = 1;
+ }
+ break;
+
+ default:
+ dhcp_d("ignoring message type %d", *(uint8_t *)opt->value);
+ break;
+ }
+ }
+ if (opt->type == BOOTP_OPTION_REQUESTED_IP && opt->length == 4U)
+ {
+ dhcp_d("found REQUESTED IP option %hhu.%hhu.%hhu.%hhu", opt->value[0], opt->value[1], opt->value[2],
+ opt->value[3]);
+ (void)memcpy((uint8_t *)&dhcps.client_ip, (uint8_t *)opt->value, 4);
+ got_client_ip = 1;
+ }
+
+ if (got_client_ip)
+ {
+ /* requested address outside of subnet */
+ if ((dhcps.client_ip & dhcps.netmask) == (dhcps.my_ip & dhcps.netmask))
+ {
+ /* When client requests an IP address,
+ * DHCP-server checks if the valid
+ * IP-MAC entry is present in the
+ * ip-mac cache, if yes, also checks
+ * if the requested IP is same as the
+ * IP address present in IP-MAC entry,
+ * if yes, it allows the device to
+ * continue with the requested IP
+ * address.
+ */
+ new_ip = ac_lookup_mac(hdr->chaddr);
+ if (new_ip != (CLIENT_IP_NOT_FOUND))
+ {
+ /* if new_ip is equal to requested ip */
+ if (new_ip == dhcps.client_ip)
+ {
+ got_ip = 1;
+ }
+ else
+ {
+ got_ip = 0;
+ }
+ }
+ else if (ac_valid_ip(ntohl(dhcps.client_ip)))
+ {
+ /* When client requests with an IP
+ * address that is within subnet range
+ * and not assigned to any other client,
+ * then dhcp-server allows that device
+ * to continue with that IP address.
+ * And if IP-MAC cache is not full then
+ * adds this entry in cache.
+ */
+ if (ac_not_full())
+ {
+ (void)ac_add(hdr->chaddr, dhcps.client_ip);
+ }
+ else
+ {
+ dhcp_w(
+ "No space to store new "
+ "mapping..");
+ }
+ got_ip = 1;
+ }
+ else
+ { /* Do Nothing */
+ }
+ }
+ }
+
+ /* look at the next option (if any) */
+ consumed = sizeof(struct bootp_option) + opt->length;
+ len -= consumed;
+ opt = (struct bootp_option *)(void *)((char *)opt + consumed);
+ if (need_ip)
+ {
+ response_type = (uint8_t)(got_ip ? DHCP_MESSAGE_ACK : DHCP_MESSAGE_NAK);
+ }
+ }
+
+ if (response_type != DHCP_NO_RESPONSE)
+ {
+ ret = make_response(msg, (enum dhcp_message_type)response_type);
+ ret = SEND_RESPONSE(dhcps.sock, (struct sockaddr *)(void *)&dhcps.baddr, msg, ret);
+ if (response_type == DHCP_MESSAGE_ACK)
+ {
+ (void)send_gratuitous_arp(dhcps.my_ip);
+ }
+ return WM_SUCCESS;
+ }
+
+ dhcp_d("ignoring DHCP packet");
+ return WM_SUCCESS;
+}
+
+static void dhcp_clean_sockets(void)
+{
+ int ret;
+
+ if (ctrl != -1)
+ {
+ ret = net_close(ctrl);
+ if (ret != 0)
+ {
+ dhcp_w("Failed to close control socket: %d", net_get_sock_error(ctrl));
+ }
+ ctrl = -1;
+ }
+ if (dhcps.sock != -1)
+ {
+ ret = net_close(dhcps.sock);
+ if (ret != 0)
+ {
+ dhcp_w("Failed to close dhcp socket: %d", net_get_sock_error(dhcps.sock));
+ }
+ dhcps.sock = -1;
+ }
+}
+
+void dhcp_server(os_thread_arg_t data)
+{
+ int ret;
+ static int one = 1;
+ struct sockaddr_in caddr;
+ struct sockaddr_in ctrl_listen;
+ int addr_len = 0;
+ int max_sock;
+ int len;
+ socklen_t flen = sizeof(caddr);
+ fd_set rfds;
+
+ (void)memset(&ctrl_listen, 0, sizeof(struct sockaddr_in));
+
+ /* create listening control socket */
+ ctrl = net_socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
+ if (ctrl < 0)
+ {
+ ret = net_get_sock_error(ctrl);
+ if (ret != 0)
+ {
+ dhcp_e("Failed to create control socket: %d.", ret);
+ }
+
+ goto done;
+ }
+ if (setsockopt(ctrl, SOL_SOCKET, SO_REUSEADDR, (char *)&one, sizeof(one)) == -1)
+ {
+ dhcp_e("failed to set SO_REUSEADDR");
+ (void)net_close(ctrl);
+ goto done;
+ }
+ ctrl_listen.sin_family = PF_INET;
+ ctrl_listen.sin_port = htons(CTRL_PORT);
+ ctrl_listen.sin_addr.s_addr = net_inet_aton("127.0.0.1");
+ addr_len = (int)sizeof(struct sockaddr_in);
+ ret = net_bind(ctrl, (struct sockaddr *)(void *)&ctrl_listen, addr_len);
+ if (ret < 0)
+ {
+ dhcp_e("Failed to bind control socket", ctrl);
+ dhcp_clean_sockets();
+ dns_free_allocations();
+ os_thread_self_complete(NULL);
+ }
+
+ (void)os_mutex_get(&dhcpd_mutex, OS_WAIT_FOREVER);
+
+ while (true)
+ {
+ FD_ZERO(&rfds);
+ FD_SET(dhcps.sock, &rfds);
+ FD_SET(ctrl, &rfds);
+ max_sock = dns_get_maxsock(&rfds);
+
+ max_sock = (max_sock > ctrl) ? max_sock : ctrl;
+
+ ret = net_select(max_sock + 1, &rfds, NULL, NULL, NULL);
+
+ /* Error in select? */
+ if (ret < 0)
+ {
+ dhcp_e("select failed", -1);
+ goto done;
+ }
+
+ /* check the control socket */
+ if (FD_ISSET(ctrl, &rfds) != 0)
+ {
+ ret = recvfrom(ctrl, ctrl_msg, sizeof(ctrl_msg), 0, (struct sockaddr *)0, (socklen_t *)0);
+ if (ret == -1)
+ {
+ dhcp_e(
+ "Failed to get control"
+ " message: %d\r\n",
+ ctrl);
+ }
+ else
+ {
+ if (strcmp(ctrl_msg, "HALT") == 0)
+ {
+ goto done;
+ }
+ }
+ }
+
+ if (FD_ISSET(dhcps.sock, &rfds) != 0)
+ {
+ len = recvfrom(dhcps.sock, dhcps.msg, sizeof(dhcps.msg), 0, (struct sockaddr *)(void *)&caddr, &flen);
+ if (len > 0)
+ {
+ dhcp_d("recved msg on dhcp sock len: %d", len);
+ (void)process_dhcp_message(dhcps.msg, len);
+ }
+ }
+
+ dns_process_packet();
+ }
+
+done:
+ dhcp_clean_sockets();
+ dns_free_allocations();
+#ifdef CONFIG_WPA_SUPP
+ netconn_thread_cleanup();
+#endif
+ (void)os_mutex_put(&dhcpd_mutex);
+ os_thread_self_complete(NULL);
+}
+
+int dhcp_create_and_bind_udp_socket(struct sockaddr_in *address, void *intrfc_handle)
+{
+ int one = 1;
+ int ret;
+ struct ifreq req;
+
+ (void)memset(req.ifr_name, 0, sizeof(req.ifr_name));
+ (void)net_get_if_name(req.ifr_name, intrfc_handle);
+
+ int sock = net_socket(PF_INET, SOCK_DGRAM, 0);
+ if (sock == -1)
+ {
+ dhcp_e("failed to create a socket");
+ return -WM_FAIL;
+ }
+
+ ret = setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&one, sizeof(int));
+ if (ret == -1)
+ {
+ /* This is unimplemented in lwIP, hence do not return */
+ dhcp_e("failed to set SO_REUSEADDR");
+ }
+
+ if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char *)&one, sizeof(one)) == -1)
+ {
+ dhcp_e("failed to set SO_BROADCAST");
+ (void)net_close(sock);
+ return -WM_FAIL;
+ }
+
+ if (setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, &req, sizeof(struct ifreq)) == -1)
+ {
+ dhcp_e("failed to set SO_BINDTODEVICE");
+ (void)net_close(sock);
+ return -WM_FAIL;
+ }
+
+ (void)net_socket_blocking(sock, NET_BLOCKING_OFF);
+
+ ret = net_bind(sock, (struct sockaddr *)(void *)address, sizeof(struct sockaddr));
+
+ if (ret != 0)
+ {
+ dhcp_e("failed to bind server socket");
+ dhcp_e("socket err: %d", net_get_sock_error(sock));
+ (void)net_close(sock);
+ return -WM_FAIL;
+ }
+ return sock;
+}
+
+int dhcp_server_init(void *intrfc_handle)
+{
+ int ret = WM_SUCCESS;
+
+ (void)memset(&dhcps, 0, sizeof(dhcps));
+
+ ret = os_mutex_create(&dhcpd_mutex, "dhcp", OS_MUTEX_INHERIT);
+ if (ret != WM_SUCCESS)
+ {
+ return -WM_E_DHCPD_MUTEX_CREATE;
+ }
+
+ get_broadcast_addr(&dhcps.baddr);
+ dhcps.baddr.sin_port = htons(DHCP_CLIENT_PORT);
+
+ if (get_ip_addr_from_interface(&dhcps.my_ip, intrfc_handle) < 0)
+ {
+ dhcp_e("failed to look up our IP address from interface");
+ ret = -WM_E_DHCPD_IP_ADDR;
+ goto out;
+ }
+
+ if (get_netmask_from_interface(&dhcps.netmask, intrfc_handle) < 0)
+ {
+ dhcp_e("failed to look up our netmask from interface");
+ ret = -WM_E_DHCPD_NETMASK;
+ goto out;
+ }
+
+ dhcps.saddr.sin_family = AF_INET;
+ dhcps.saddr.sin_addr.s_addr = INADDR_ANY;
+ dhcps.saddr.sin_port = htons(DHCP_SERVER_PORT);
+ dhcps.sock = dhcp_create_and_bind_udp_socket(&dhcps.saddr, intrfc_handle);
+
+ if (dhcps.sock < 0)
+ {
+ ret = -WM_E_DHCPD_SOCKET;
+ goto out;
+ }
+
+ ret = dns_server_init(intrfc_handle);
+ if (ret != WM_SUCCESS)
+ {
+ dhcp_e("Failed to start dhcp server. Err: %d", ret);
+ goto out;
+ }
+
+ return WM_SUCCESS;
+
+out:
+ (void)os_mutex_delete(&dhcpd_mutex);
+ return ret;
+}
+
+static int send_ctrl_msg(const char *msg)
+{
+ int ret, ctrl_tmp;
+ struct sockaddr_in to_addr;
+
+ /*
+ * Create a temporary socket and send "HALT" message to control
+ * socket listening on port CTRL_PORT (12679), this is done in order
+ * to make sure that same socket does not get used from multiple
+ * thread contexts.
+ */
+ ctrl_tmp = net_socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
+ if (ctrl_tmp < 0)
+ {
+ ret = net_get_sock_error(ctrl_tmp);
+ if (ret != 0)
+ {
+ dhcp_e("failed to create socket error:%d", ret);
+ }
+ return ret;
+ }
+
+ (void)memset((char *)&to_addr, 0, sizeof(to_addr));
+ to_addr.sin_family = PF_INET;
+ to_addr.sin_port = htons(CTRL_PORT);
+ to_addr.sin_addr.s_addr = net_inet_aton("127.0.0.1");
+
+ ret = sendto(ctrl_tmp, msg, strlen(msg) + 1U, 0, (struct sockaddr *)(void *)&to_addr, sizeof(to_addr));
+ if (ret == -1)
+ {
+ ret = net_get_sock_error(ctrl_tmp);
+ if (ret != 0)
+ {
+ dhcp_e("failed to send ctrl_msg error:%d", ret);
+ }
+ }
+ else
+ {
+ ret = WM_SUCCESS;
+ }
+
+ (void)net_close(ctrl_tmp);
+ return ret;
+}
+
+int dhcp_send_halt(void)
+{
+ int ret = WM_SUCCESS;
+
+ ret = send_ctrl_msg("HALT");
+ if (ret != 0)
+ {
+ dhcp_w("Failed to send HALT: %d.", ret);
+ return -WM_FAIL;
+ }
+
+ ret = dhcp_free_allocations();
+ return ret;
+}
+
+int dhcp_free_allocations(void)
+{
+ int ret;
+
+ /* Wait for 10 seconds */
+ ret = os_mutex_get(&dhcpd_mutex, os_msec_to_ticks(10000));
+ if (ret != WM_SUCCESS)
+ {
+ return ret;
+ }
+
+ dhcp_clean_sockets();
+ dns_free_allocations();
+
+ ret = os_mutex_put(&dhcpd_mutex);
+ if (ret != WM_SUCCESS)
+ {
+ return ret;
+ }
+
+ return os_mutex_delete(&dhcpd_mutex);
+}
+
+static int send_gratuitous_arp(uint32_t ip)
+{
+ int sock;
+ struct arp_packet pkt;
+ struct sockaddr_in to_addr;
+ to_addr.sin_family = AF_INET;
+ to_addr.sin_addr.s_addr = ip;
+ pkt.frame_type = htons(ARP_FRAME_TYPE);
+ pkt.hw_type = htons(ETHER_HW_TYPE);
+ pkt.prot_type = htons(IP_PROTO_TYPE);
+ pkt.hw_addr_size = ETH_HW_ADDR_LEN;
+ pkt.prot_addr_size = IP_ADDR_LEN;
+ pkt.op = htons(OP_ARP_REQUEST);
+
+ write_u32(pkt.sndr_ip_addr, ip);
+ write_u32(pkt.rcpt_ip_addr, ip);
+
+ (void)memset(pkt.targ_hw_addr, 0xff, ETH_HW_ADDR_LEN);
+ (void)memset(pkt.rcpt_hw_addr, 0xff, ETH_HW_ADDR_LEN);
+ (void)wlan_get_mac_address_uap(pkt.sndr_hw_addr);
+ (void)memcpy(pkt.src_hw_addr, pkt.sndr_hw_addr, ETH_HW_ADDR_LEN);
+ sock = net_socket(AF_INET, SOCK_DGRAM, 0);
+ if (sock < 0)
+ {
+ dhcp_e("Could not open socket to send Gratuitous ARP");
+ return -WM_E_DHCPD_SOCKET;
+ }
+ (void)memset(pkt.padding, 0, sizeof(pkt.padding));
+
+ if (sendto(sock, (char *)&pkt, sizeof(pkt), 0, (struct sockaddr *)(void *)&to_addr, sizeof(to_addr)) < 0)
+ {
+ dhcp_e("Failed to send Gratuitous ARP");
+ (void)net_close(sock);
+ return -WM_E_DHCPD_ARP_SEND;
+ }
+ dhcp_d("Gratuitous ARP sent");
+ (void)net_close(sock);
+ return WM_SUCCESS;
+}
+
+static void get_broadcast_addr(struct sockaddr_in *addr)
+{
+ addr->sin_family = AF_INET;
+ /* limited broadcast addr (255.255.255.255) */
+ addr->sin_addr.s_addr = 0xffffffffU;
+ addr->sin_len = (uint8_t)sizeof(struct sockaddr_in);
+}
+
+static int get_ip_addr_from_interface(uint32_t *ip, void *interface_handle)
+{
+ return net_get_if_ip_addr(ip, interface_handle);
+}
+
+static int get_netmask_from_interface(uint32_t *nm, void *interface_handle)
+{
+ return net_get_if_ip_mask(nm, interface_handle);
+}
+
+void dhcp_stat(void)
+{
+ int i = 0;
+ struct ip4_addr saddr;
+ (void)PRINTF("DHCP Server Lease Duration : %d seconds\r\n", (int)dhcp_address_timeout);
+ if (dhcps.count_clients == 0)
+ {
+ (void)PRINTF("No IP-MAC mapping stored\r\n");
+ }
+ else
+ {
+ (void)PRINTF("Client IP\tClient MAC\r\n");
+ for (i = 0; i < dhcps.count_clients && i < MAC_IP_CACHE_SIZE; i++)
+ {
+ saddr.addr = dhcps.ip_mac_mapping[i].client_ip;
+ (void)PRINTF("%s\t%02X:%02X:%02X:%02X:%02X:%02X\r\n", inet_ntoa(saddr),
+ dhcps.ip_mac_mapping[i].client_mac[0], dhcps.ip_mac_mapping[i].client_mac[1],
+ dhcps.ip_mac_mapping[i].client_mac[2], dhcps.ip_mac_mapping[i].client_mac[3],
+ dhcps.ip_mac_mapping[i].client_mac[4], dhcps.ip_mac_mapping[i].client_mac[5]);
+ }
+ }
+}
diff --git a/third-party/fsl_wifi/dhcpd/dns-server.c b/third-party/fsl_wifi/dhcpd/dns-server.c
new file mode 100644
index 0000000000000000000000000000000000000000..5181b6c67e936fc3ad80e1b3f07c771e2ddc5d70
--- /dev/null
+++ b/third-party/fsl_wifi/dhcpd/dns-server.c
@@ -0,0 +1,316 @@
+/** @file dns-server.c
+ *
+ * @brief This file provides the DNS Server
+ *
+ * Copyright 2008-2022 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/** dns-server.c: The DNS Server
+ */
+#include
+
+#include
+#include
+#include
+#include
+
+#include "dhcp-bootp.h"
+#include "dns.h"
+#include "dhcp-priv.h"
+
+static struct dns_server_data dnss;
+static int (*dhcp_dns_server_handler)(char *msg, int len, struct sockaddr_in *fromaddr);
+extern struct dhcp_server_data dhcps;
+
+/* take a domain name and convert it into a DNS QNAME format, i.e.
+ * foo.rats.com. -> 03 66 6f 6f 04 72 61 74 73 03 63 6f 6d 00
+ *
+ * The size of the QNAME will be one byte longer than the original string.
+ */
+static void format_qname(char *domain_name, char *dns_qname)
+{
+ int i = 0, len;
+ char *s = domain_name;
+ char *d = dns_qname + 1;
+
+ len = (int)strlen(s);
+ s += len - 1;
+ d += len - 1;
+
+ while (s >= domain_name)
+ {
+ if (*s != '.')
+ {
+ *d = *s;
+ i++;
+ }
+ else
+ {
+ *d = (char)i;
+ i = 0;
+ }
+ s--;
+ d--;
+ }
+ dns_qname[0] = (char)i;
+}
+
+static unsigned int make_answer_rr(char *base, char *query, char *dst)
+{
+ struct dns_question *q;
+ struct dns_rr *rr = (struct dns_rr *)(void *)dst;
+ char *query_start = query;
+
+ rr->name_ptr = htons(((uint16_t)(query - base) | 0xC000U));
+
+ /* skip past the qname (label) field */
+ do
+ {
+ if (*query > 0U)
+ {
+ query += *query + 1;
+ }
+ } while (*query > 0U);
+ query++;
+
+ q = (struct dns_question *)(void *)query;
+ query += sizeof(struct dns_question);
+
+ rr->type = q->type;
+ rr->class = q->class;
+ rr->ttl = htonl(60U * 60U * 1U); /* 1 hour */
+ rr->rdlength = htons(4);
+ rr->rd = dhcps.my_ip;
+
+ return (unsigned int)(query - query_start);
+}
+
+static char *parse_questions(unsigned int num_questions, uint8_t *pos, int *found)
+{
+ uint8_t *base = pos;
+ int i;
+
+ pos += sizeof(struct dns_header);
+
+ for (; num_questions > 0U; num_questions--)
+ {
+ if (!*found)
+ {
+ for (i = 0; i < dnss.count_qnames; i++)
+ {
+ *found =
+ (int)(!strncmp(dnss.list_qnames[i].qname, (char *)pos, (size_t)(base + SERVER_BUFFER_SIZE - pos)));
+ if (*found != 0)
+ {
+ break;
+ }
+ }
+ }
+ do
+ {
+ if (*pos > 0U)
+ {
+ pos += *pos + 1U;
+ }
+ if (pos >= base + SERVER_BUFFER_SIZE)
+ {
+ return NULL;
+ }
+ } while (*pos > 0U);
+ pos += 1U + sizeof(struct dns_question);
+ }
+ return (char *)pos;
+}
+
+#define ERROR_REFUSED 5
+static int process_dns_message(char *msg, int len, struct sockaddr_in *fromaddr)
+{
+ struct dns_header *hdr;
+ char *pos;
+ char *outp = msg + len;
+ int found = 0, nq, i;
+
+ if (len < sizeof(struct dns_header))
+ {
+ dhcp_e("DNS request is not complete, hence ignoring it");
+ return -WM_E_DHCPD_DNS_IGNORE;
+ }
+
+ hdr = (struct dns_header *)(void *)msg;
+
+ dhcp_d("DNS transaction id: 0x%x", htons(hdr->id));
+
+ if (hdr->flags.fields.qr != 0U)
+ {
+ dhcp_e("ignoring this dns message (not a query)");
+ return -WM_E_DHCPD_DNS_IGNORE;
+ }
+
+ nq = (int)ntohs(hdr->num_questions);
+ dhcp_d("we were asked %d questions", nq);
+
+ if (nq <= 0)
+ {
+ dhcp_e("ignoring this dns msg (not a query or 0 questions)");
+ return -WM_E_DHCPD_DNS_IGNORE;
+ }
+
+ outp = parse_questions((unsigned int)nq, (uint8_t *)msg, &found);
+ if (found && outp != NULL)
+ {
+ pos = msg + sizeof(struct dns_header);
+ for (i = 0; i < nq; i++)
+ {
+ if (outp + sizeof(struct dns_rr) >= msg + SERVER_BUFFER_SIZE)
+ {
+ dhcp_d("no room for more answers, refusing");
+ break;
+ }
+ pos += make_answer_rr(msg, pos, outp);
+ outp += sizeof(struct dns_rr);
+ }
+ hdr->flags.fields.qr = 1;
+ hdr->flags.fields.aa = 1;
+ hdr->flags.fields.rcode = 0;
+ hdr->flags.num = htons(hdr->flags.num);
+ hdr->answer_rrs = htons((u16_t)i);
+ /* the response consists of:
+ * - 1 x DNS header
+ * - num_questions x query fields from the message we're parsing
+ * - num_answers x answer fields that we've appended
+ */
+ return SEND_RESPONSE(dnss.dnssock, (struct sockaddr *)(void *)fromaddr, msg, outp - msg);
+ }
+
+ /* make the header represent a response */
+ hdr->flags.fields.qr = 1;
+ hdr->flags.fields.opcode = 0;
+ /* Errors are never authoritative (unless they are
+ NXDOMAINS, which this is not) */
+ hdr->flags.fields.aa = 0;
+ hdr->flags.fields.tc = 0;
+ hdr->flags.fields.rd = 1;
+ hdr->flags.fields.ra = 0;
+ hdr->flags.fields.rcode = ERROR_REFUSED;
+ hdr->flags.num = htons(hdr->flags.num);
+ /* number of entries in questions section */
+ hdr->num_questions = htons(0x01);
+ hdr->answer_rrs = 0; /* number of resource records in answer section */
+ hdr->authority_rrs = 0;
+ hdr->additional_rrs = 0;
+ (void)SEND_RESPONSE(dnss.dnssock, (struct sockaddr *)(void *)fromaddr, msg, outp - msg);
+
+ return -WM_E_DHCPD_DNS_IGNORE;
+}
+
+void dhcp_enable_dns_server(char **domain_names)
+{
+ if (dhcp_dns_server_handler != NULL || dnss.list_qnames != NULL)
+ {
+ return;
+ }
+
+ int i;
+ /* To reduce footprint impact, dns server support is kept optional */
+ dhcp_dns_server_handler = process_dns_message;
+ if (domain_names != NULL)
+ {
+ while (domain_names[dnss.count_qnames] != NULL)
+ {
+ dnss.count_qnames++;
+ }
+ dnss.list_qnames = os_mem_alloc(dnss.count_qnames * sizeof(struct dns_qname));
+
+ for (i = 0; i < dnss.count_qnames; i++)
+ {
+ (void)memset(dnss.list_qnames[i].qname, 0, sizeof(struct dns_qname));
+ format_qname(domain_names[i], dnss.list_qnames[i].qname);
+ }
+ }
+}
+
+int dns_server_init(void *intrfc_handle)
+{
+ if (dhcp_dns_server_handler == NULL)
+ {
+ return WM_SUCCESS;
+ }
+
+ dnss.dnsaddr.sin_family = AF_INET;
+ dnss.dnsaddr.sin_addr.s_addr = INADDR_ANY;
+ dnss.dnsaddr.sin_port = htons(NAMESERVER_PORT);
+ dnss.dnssock = dhcp_create_and_bind_udp_socket(&dnss.dnsaddr, intrfc_handle);
+ if (dnss.dnssock < 0)
+ {
+ return -WM_E_DHCPD_SOCKET;
+ }
+
+ return WM_SUCCESS;
+}
+
+void dns_process_packet(void)
+{
+ if (dhcp_dns_server_handler == NULL)
+ {
+ return;
+ }
+
+ struct sockaddr_in caddr;
+ socklen_t flen = sizeof(caddr);
+ int len;
+ len = recvfrom(dnss.dnssock, dhcps.msg, sizeof(dhcps.msg), 0, (struct sockaddr *)(void *)&caddr, &flen);
+ if (len > 0)
+ {
+ dhcp_d("recved msg on dns sock len: %d", len);
+ (void)dhcp_dns_server_handler(dhcps.msg, len, &caddr);
+ }
+}
+
+uint32_t dns_get_nameserver(void)
+{
+ if (dhcp_dns_server_handler != NULL)
+ {
+ return dhcps.my_ip;
+ }
+ return 0;
+}
+
+int dns_get_maxsock(fd_set *rfds)
+{
+ if (dhcp_dns_server_handler == NULL)
+ {
+ return dhcps.sock;
+ }
+
+ int max_sock;
+ FD_SET(dnss.dnssock, rfds);
+ max_sock = (dhcps.sock > dnss.dnssock ? dhcps.sock : dnss.dnssock);
+ return max_sock;
+}
+
+void dns_free_allocations(void)
+{
+ if (dhcp_dns_server_handler == NULL)
+ {
+ return;
+ }
+
+ if (dnss.list_qnames != NULL)
+ {
+ dnss.count_qnames = 0;
+ os_mem_free(dnss.list_qnames);
+ dnss.list_qnames = NULL;
+ }
+ if (dnss.dnssock != -1)
+ {
+ if (net_close(dnss.dnssock) != 0)
+ {
+ dhcp_w("Failed to close dns socket: %d", net_get_sock_error(dnss.dnssock));
+ }
+ dnss.dnssock = -1;
+ }
+ dhcp_dns_server_handler = NULL;
+}
diff --git a/third-party/fsl_wifi/dhcpd/dns.h b/third-party/fsl_wifi/dhcpd/dns.h
new file mode 100644
index 0000000000000000000000000000000000000000..9ea627577f48ae5123a9fe9e7a61cb68477f0de2
--- /dev/null
+++ b/third-party/fsl_wifi/dhcpd/dns.h
@@ -0,0 +1,78 @@
+/** @file dns.h
+ *
+ * @brief DNS Header
+ *
+ * Copyright 2008-2020 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#ifndef __DNS_H__
+#define __DNS_H__
+
+PACK_START struct dns_header
+{
+ uint16_t id;
+ PACK_START union
+ {
+ PACK_START struct
+ {
+ uint16_t rcode : 4, /* response code */
+ cd : 1, /* checking disabled RFC-2535 */
+ ad : 1, /* authentic data RFC-2535 */
+ z : 1, /* zero */
+ ra : 1, /* recursion available */
+ rd : 1, /* recursion desired */
+ tc : 1, /* truncated */
+ aa : 1, /* authoritative answer */
+ opcode : 4, /* (should be 0 for normal DNS messages) */
+ qr : 1; /* query/response */
+ } fields PACK_END;
+ uint16_t num;
+ } flags PACK_END;
+ uint16_t num_questions;
+ uint16_t answer_rrs;
+ uint16_t authority_rrs;
+ uint16_t additional_rrs;
+} PACK_END;
+
+PACK_START struct dns_question
+{
+ /* query name (label) field */
+ uint16_t type;
+ uint16_t class;
+} PACK_END;
+
+PACK_START struct dns_rr
+{
+ uint16_t name_ptr; /* pointer to name */
+ uint16_t type; /* resource type */
+ uint16_t class; /* resource class */
+ uint32_t ttl; /* time to live */
+ uint16_t rdlength; /* resource data length */
+ uint32_t rd; /* resource data: we only provide a
+ 4-byte data response (an IP
+ address) but this is actually a
+ field of length rdlength */
+} PACK_END;
+
+struct dns_qname
+{
+ char qname[MAX_QNAME_SIZE + 1];
+};
+
+struct dns_server_data
+{
+ int count_qnames;
+ int dnssock;
+ struct sockaddr_in dnsaddr; /* dns server address */
+ struct dns_qname *list_qnames;
+};
+
+int dns_server_init(void *intrfc_handle);
+void dns_process_packet(void);
+uint32_t dns_get_nameserver(void);
+int dns_get_maxsock(fd_set *rfds);
+void dns_free_allocations(void);
+#endif /* __DNS_H__ */
diff --git a/third-party/fsl_wifi/fsl_wifi.kconfig b/third-party/fsl_wifi/fsl_wifi.kconfig
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/third-party/fsl_wifi/incl/WIFI_IW416_BOARD_AW_AM457_CAL_DATA_EXT.h b/third-party/fsl_wifi/incl/WIFI_IW416_BOARD_AW_AM457_CAL_DATA_EXT.h
new file mode 100644
index 0000000000000000000000000000000000000000..43123dfa5d06de94e900875506683acbfb92ac87
--- /dev/null
+++ b/third-party/fsl_wifi/incl/WIFI_IW416_BOARD_AW_AM457_CAL_DATA_EXT.h
@@ -0,0 +1,39 @@
+/** @file WIFI_IW416_BOARD_AW_AM457_CAL_DATA_EXT.h
+ *
+ * @brief This file contains the cal data
+ */
+/*
+ * Copyright 2021 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+#ifndef _WIFI_CAL_DATA_H_
+#define _WIFI_CAL_DATA_H_
+
+/*
+ * Following cal data is specific to IW416 QFN A1 chips. If other Modules require
+ * external cal data to be loaded then this array needs to be updated accordingly.
+ */
+uint8_t ext_cal_data[] = {
+ 0x01, 0x00, 0x0E, 0x00, 0x64, 0x01, 0x00, 0x20, 0x77, 0x0E, 0x00, 0x00, 0x00, 0x20, 0x01, 0x01, 0x20, 0x00, 0xA0,
+ 0x02, 0xBE, 0x19, 0x00, 0x3F, 0x00, 0x10, 0x00, 0x02, 0x58, 0x81, 0x02, 0x00, 0x00, 0x3E, 0x01, 0x00, 0x00, 0x36,
+ 0x00, 0x3C, 0x22, 0x4B, 0x00, 0x00, 0x00, 0x5C, 0xFF, 0xFF, 0x06, 0x00, 0x05, 0x11, 0x62, 0x03, 0xFF, 0xFF, 0x6B,
+ 0x6B, 0x05, 0x17, 0x5F, 0x43, 0xFF, 0xFF, 0x76, 0x76, 0x05, 0x14, 0x57, 0x47, 0xFF, 0xFF, 0x54, 0x54, 0x05, 0x16,
+ 0x5B, 0x4B, 0xFF, 0xFF, 0x6E, 0x6E, 0x05, 0x15, 0x62, 0x4F, 0xFF, 0xFF, 0x72, 0x72, 0x05, 0x13, 0x4B, 0x53, 0xFF,
+ 0xFF, 0x54, 0x54, 0x00, 0x6C, 0x92, 0x4D, 0x00, 0x00, 0x00, 0xC8, 0xFF, 0xF1, 0x0C, 0x00, 0x01, 0xA5, 0xFF, 0xFF,
+ 0x00, 0x06, 0x10, 0x5F, 0x01, 0x93, 0xFF, 0xFF, 0x40, 0x10, 0x10, 0x5F, 0x01, 0x9F, 0xFF, 0xFF, 0x44, 0x30, 0x10,
+ 0x5F, 0x01, 0x97, 0xFF, 0xFF, 0x48, 0x78, 0x10, 0x5F, 0x01, 0x92, 0xFF, 0xFF, 0x4C, 0x9D, 0x10, 0x5F, 0x01, 0x92,
+ 0xFF, 0xFF, 0x50, 0x50, 0x10, 0x5F, 0x40, 0x0A, 0xFF, 0xFF, 0x00, 0x06, 0x10, 0x5F, 0x40, 0x1C, 0xFF, 0xFF, 0x40,
+ 0x10, 0x10, 0x5F, 0x40, 0x1C, 0xFF, 0xFF, 0x44, 0x30, 0x10, 0x5F, 0x40, 0x1C, 0xFF, 0xFF, 0x48, 0x78, 0x10, 0x5F,
+ 0x40, 0x1E, 0xFF, 0xFF, 0x4C, 0x9D, 0x10, 0x5F, 0x40, 0x1C, 0xFF, 0xFF, 0x50, 0x50, 0x10, 0x5F, 0x00, 0x24, 0xDE,
+ 0x49, 0x00, 0x00, 0x00, 0xEC, 0xFF, 0xFF, 0x06, 0x00, 0x03, 0xFF, 0x04, 0x05, 0x43, 0xFF, 0x08, 0x09, 0x47, 0xFF,
+ 0x08, 0x09, 0x4B, 0xFF, 0x06, 0x07, 0x4F, 0xFF, 0x06, 0x07, 0x53, 0xFF, 0x06, 0x07, 0x00, 0x44, 0x06, 0x5A, 0x00,
+ 0x00, 0x01, 0x30, 0x00, 0x07, 0x01, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x22, 0x00, 0x08, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00,
+ 0x08, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C,
+ 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x18, 0x8C, 0x53, 0x00, 0x00, 0x01, 0x48, 0x39, 0x54, 0xDC, 0x66, 0xBC,
+ 0x58, 0x44, 0xD0, 0xBE, 0x5D, 0x2F, 0x1B, 0x41, 0x1A, 0xB8, 0x52, 0x00, 0x1C, 0x9B, 0x37, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x02, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x2D, 0xC6, 0xC0, 0x33, 0x44, 0x55, 0x66, 0x00, 0xF0, 0x11,
+ 0x22};
+#endif
diff --git a/third-party/fsl_wifi/incl/cli.h b/third-party/fsl_wifi/incl/cli.h
new file mode 100644
index 0000000000000000000000000000000000000000..4137bd7fe40e75975136d88811df706d034d74a4
--- /dev/null
+++ b/third-party/fsl_wifi/incl/cli.h
@@ -0,0 +1,134 @@
+/*
+ * Copyright 2008-2022 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/** @file cli.h
+ *
+ * @brief CLI module
+ *
+ * \section cli_usage Usage
+ * The CLI module lets you register commands with the CLI interface. Modules
+ * that wish to register the commands should initialize the struct cli_command
+ * structure and pass this to cli_register_command(). These commands will then
+ * be available on the CLI.
+ *
+ */
+
+#ifndef __CLI_H__
+#define __CLI_H__
+#include
+#include
+
+/** Structure for registering CLI commands */
+struct cli_command
+{
+ /** The name of the CLI command */
+ const char *name;
+ /** The help text associated with the command */
+ const char *help;
+ /** The function that should be invoked for this command. */
+ void (*function)(int argc, char **argv);
+};
+
+/*lookup_command declaration for coexapp */
+#ifdef COEX_APP_SUPPORT
+const struct cli_command *lookup_command(char *name, int len);
+#endif
+
+/** Register a CLI command
+ *
+ * This function registers a command with the command-line interface.
+ *
+ * \param[in] command The structure to register one CLI command
+ * \return 0 on success
+ * \return 1 on failure
+ */
+int cli_register_command(const struct cli_command *command);
+
+/** Unregister a CLI command
+ *
+ * This function unregisters a command from the command-line interface.
+ *
+ * \param[in] command The structure to unregister one CLI command
+ * \return 0 on success
+ * \return 1 on failure
+ */
+int cli_unregister_command(const struct cli_command *command);
+
+/** Initialize the CLI module
+ *
+ * \return WM_SUCCESS on success
+ * \return error code otherwise.
+ */
+int cli_init(void);
+
+/** Stop the CLI thread and carry out the cleanup
+ *
+ * \return WM_SUCCESS on success
+ * \return error code otherwise.
+ *
+ */
+int cli_stop(void);
+
+/** Register a batch of CLI commands
+ *
+ * Often, a module will want to register several commands.
+ *
+ * \param[in] commands Pointer to an array of commands.
+ * \param[in] num_commands Number of commands in the array.
+ * \return 0 on success
+ * \return 1 on failure
+ */
+int cli_register_commands(const struct cli_command *commands, int num_commands);
+
+/** Unregister a batch of CLI commands
+ *
+ * \param[in] commands Pointer to an array of commands.
+ * \param[in] num_commands Number of commands in the array.
+ * \return 0 on success
+ * \return 1 on failure
+ */
+int cli_unregister_commands(const struct cli_command *commands, int num_commands);
+
+/* Get a command buffer
+ *
+ * If an external input task wants to use the CLI, it can use
+ * cli_get_cmd_buffer() to get a command buffer that it can then
+ * submit to the CLI later using cli_submit_cmd_buffer().
+ *
+ * \param buff Pointer to a char * to place the buffer pointer in.
+ * \return WM_SUCCESS on success
+ * \return error code otherwise.
+ */
+int cli_get_cmd_buffer(char **buff);
+
+/* Submit a command buffer to the CLI
+ *
+ * Sends the command buffer to the CLI for processing.
+ *
+ * \param buff Pointer to a char * buffer.
+ * \return WM_SUCCESS on success
+ * \return error code otherwise.
+ */
+int cli_submit_cmd_buffer(char **buff);
+
+/*
+ */
+typedef int (*cli_name_val_get)(const char *name, char *value, int max_len);
+
+/*
+ */
+typedef int (*cli_name_val_set)(const char *name, const char *value);
+
+
+/*
+ * @internal
+ *
+ * CLI help command to print all registered CLIs
+ */
+void help_command(int argc, char **argv);
+
+#endif /* __CLI_H__ */
diff --git a/third-party/fsl_wifi/incl/cli_utils.h b/third-party/fsl_wifi/incl/cli_utils.h
new file mode 100644
index 0000000000000000000000000000000000000000..4cf6ee107ded7fb29f22bd15350a2a5c50610de2
--- /dev/null
+++ b/third-party/fsl_wifi/incl/cli_utils.h
@@ -0,0 +1,32 @@
+/** @file cli_utils.h
+ *
+ * @brief CLI Utils
+ *
+ * Copyright 2008-2020 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#ifndef __MTF_UTILS_H__
+#define __MTF_UTILS_H__
+
+bool string_equal(const char *s1, const char *s2);
+bool get_uint(const char *arg, unsigned int *dest, unsigned int len);
+bool get_mac(const char *arg, char *dest, char sep);
+
+/* Simplified non-re-entrant cli_getopt function. Call this in a while loop to
+ * parse argv. Here are some caveats:
+ *
+ * Be sure to set cli_optind to 1 before invoking getopt for the first time.
+ * Only short options with preceding '-' are supported.
+ * Returns '?' when it encounters an unexpected condition or option
+ */
+extern int cli_optind;
+extern char *cli_optarg;
+int cli_getopt(int argc, char **argv, const char *fmt);
+unsigned int a2hex_or_atoi(char *value);
+unsigned int a2hex(const char *s);
+unsigned char hexc2bin(char chr);
+
+#endif
diff --git a/third-party/fsl_wifi/incl/dhcp-server.h b/third-party/fsl_wifi/incl/dhcp-server.h
new file mode 100644
index 0000000000000000000000000000000000000000..5032987b8a7ee2f9cd1d1ffa385a3bc17e4646f3
--- /dev/null
+++ b/third-party/fsl_wifi/incl/dhcp-server.h
@@ -0,0 +1,158 @@
+/*
+ * Copyright 2008-2022 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/*! \file dhcp-server.h
+ * \brief DHCP server
+ *
+ * The DHCP Server is required in the provisioning mode of the application to
+ * assign IP Address to Wireless Clients that connect to the WM.
+ */
+
+#ifndef __DHCP_SERVER_H__
+#define __DHCP_SERVER_H__
+
+#include
+
+/** DHCPD Error Codes
+ */
+
+enum wm_dhcpd_errno
+{
+ WM_E_DHCPD_ERRNO_BASE = MOD_ERROR_START(MOD_DHCPD),
+ /** Dhcp server is already running */
+ WM_E_DHCPD_SERVER_RUNNING,
+ /** Failed to create dhcp thread */
+ WM_E_DHCPD_THREAD_CREATE,
+ /** Failed to create dhcp mutex */
+ WM_E_DHCPD_MUTEX_CREATE,
+ /** Failed to register dhcp commands */
+ WM_E_DHCPD_REGISTER_CMDS,
+ /** Failed to send dhcp response */
+ WM_E_DHCPD_RESP_SEND,
+ /** Ignore as msg is not a valid dns query */
+ WM_E_DHCPD_DNS_IGNORE,
+ /** Buffer overflow occurred */
+ WM_E_DHCPD_BUFFER_FULL,
+ /** The input message is NULL or has incorrect length */
+ WM_E_DHCPD_INVALID_INPUT,
+ /** Invalid opcode in the dhcp message */
+ WM_E_DHCPD_INVALID_OPCODE,
+ /** Invalid header type or incorrect header length */
+ WM_E_DHCPD_INCORRECT_HEADER,
+ /** Spoof length is either NULL or it exceeds max length */
+ WM_E_DHCPD_SPOOF_NAME,
+ /** Failed to get broadcast address */
+ WM_E_DHCPD_BCAST_ADDR,
+ /** Failed to look up requested IP address from the interface */
+ WM_E_DHCPD_IP_ADDR,
+ /** Failed to look up requested netmask from the interface */
+ WM_E_DHCPD_NETMASK,
+ /** Failed to create the socket */
+ WM_E_DHCPD_SOCKET,
+ /** Failed to send Gratuitous ARP */
+ WM_E_DHCPD_ARP_SEND,
+ /** Error in ioctl call */
+ WM_E_DHCPD_IOCTL_CALL,
+ /** Failed to init dhcp server */
+ WM_E_DHCPD_INIT,
+
+};
+
+/* Maximum length of the name_to_spoof for the DNS spoofer (see
+ * dhcp_server_start below)
+ */
+#define MAX_QNAME_SIZE 32
+
+/** Register DHCP server commands
+ *
+ * This function registers the CLI dhcp-stat for the DHCP server.
+ * dhcp-stat command displays ip to associated client mac mapping.
+ *
+ * @return -WM_E_DHCPD_REGISTER_CMDS if cli init operation failed.
+ * @return WM_SUCCESS if cli init operation success.
+ */
+int dhcpd_cli_init(void);
+
+/** Start DHCP server
+ *
+ * This starts the DHCP server on the interface specified. Typically DHCP server
+ * should be running on the micro-AP interface but it can also run on wifi
+ * direct interface if configured as group owner. Use net_get_uap_handle() to
+ * get micro-AP interface handle.
+ *
+ * \param[in] intrfc_handle The interface handle on which DHCP server will start
+ *
+ * \return WM_SUCCESS on success or error code
+ */
+int dhcp_server_start(void *intrfc_handle);
+
+/** Start DNS server
+ *
+ * This starts the DNS server on the interface specified for dhcp server. This
+ * function needs to be used before dhcp_server_start() function and can be
+ * invoked on receiving \ref WLAN_REASON_INITIALIZED event in the application
+ * before starting micro-AP.
+ *
+ * The application needs to define its own list of domain names with the last
+ * entry as NULL. The dns server handles dns queries and if domain name match is
+ * found then resolves it to device ip address. Currently the maximum length for
+ * each domain name is set to 32 bytes.
+ *
+ * Eg.
+ * char *domain_names[] = {"nxpprov.net", "www.nxpprov.net", NULL};
+ *
+ * dhcp_enable_dns_server(domain_names);
+ *
+ * However, application can also start dns server without any domain names
+ * specified to solve following issue.
+ * Some of the client devices do not show WiFi signal strength symbol when
+ * connected to micro-AP in open mode, if dns queries are not resolved.
+ * With dns server support enabled, dns server responds with ERROR_REFUSED
+ * indicating that the DNS server refuses to provide whatever data client is
+ * asking for.
+ *
+ * \param[in] domain_names Pointer to the list of domain names or NULL.
+ *
+ */
+void dhcp_enable_dns_server(char **domain_names);
+
+/** Stop DHCP server
+ */
+void dhcp_server_stop(void);
+
+/** Configure the DHCP dynamic IP lease time
+ *
+ * This API configures the dynamic IP lease time, which
+ * should be invoked before DHCP server initialization
+ *
+ * \param[in] val Number of seconds, use (60U*60U*number of hours)
+ * for clarity. Max value is (60U*60U*24U*49700U)
+ *
+ * \return Error status code
+ */
+int dhcp_server_lease_timeout(uint32_t val);
+
+/** Get IP address corresponding to MAC address from dhcpd ip-mac mapping
+ *
+ * This API returns IP address mapping to the MAC address present in cache.
+ * IP-MAC cache stores MAC to IP mapping of previously or currently connected
+ * clients.
+ *
+ * \param[in] client_mac Pointer to a six byte array containing the MAC address
+ * of the client
+ * \param[out] client_ip Pointer to IP address of the client
+ *
+ * \return WM_SUCCESS on success or -WM_FAIL.
+ */
+int dhcp_get_ip_from_mac(uint8_t *client_mac, uint32_t *client_ip);
+
+/** Print DHCP stats on the console
+ *
+ * This API prints DHCP stats on the console
+ */
+void dhcp_stat(void);
+#endif
diff --git a/third-party/fsl_wifi/incl/iperf.h b/third-party/fsl_wifi/incl/iperf.h
new file mode 100644
index 0000000000000000000000000000000000000000..1acedeade5287f132dafad1b08f9d4f8f33ab254
--- /dev/null
+++ b/third-party/fsl_wifi/incl/iperf.h
@@ -0,0 +1,39 @@
+/** @file iperf.h
+ *
+ * @brief This file provides the support for network utility iperf
+ */
+/*
+ * Copyright 2008-2020 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#ifndef _IPERF_H_
+#define _IPERF_H_
+
+#include
+
+#define iperf_e(...) wmlog_e("iperf", ##__VA_ARGS__)
+#define iperf_w(...) wmlog_w("iperf", ##__VA_ARGS__)
+
+/** Register the Network Utility CLI command iperf.
+ *
+ * \note This function can only be called by the application after \ref
+ * wlan_init() called.
+ *
+ * \return WM_SUCCESS if the CLI commands are registered
+ * \return -WM_FAIL otherwise (for example if this function
+ * was called while the CLI commands were already registered)
+ */
+
+int iperf_cli_init();
+
+/** Unregister Network Utility CLI command iperf.
+ *
+ * \return WM_SUCCESS if the CLI commands are unregistered
+ * \return -WM_FAIL otherwise
+ */
+
+int iperf_cli_deinit();
+#endif /*_IPERF_H_ */
diff --git a/third-party/fsl_wifi/incl/port/fsl_wifi_config.h b/third-party/fsl_wifi/incl/port/fsl_wifi_config.h
new file mode 100644
index 0000000000000000000000000000000000000000..e701559c7ee744f37a4b99a88e5cdbfa0a9caec9
--- /dev/null
+++ b/third-party/fsl_wifi/incl/port/fsl_wifi_config.h
@@ -0,0 +1,224 @@
+#ifndef __FSL_WIFI_CONFIG_H__
+#define __FSL_WIFI_CONFIG_H__
+
+#include "fsl_wifi_port.h"
+
+/*
+ * Supported Wi-Fi boards (modules):
+ * WIFI_88W8801_BOARD_AW_NM191_USD
+ * WIFI_IW416_BOARD_AW_AM457_USD
+ * WIFI_IW416_BOARD_AW_AM510_USD
+ * WIFI_88W8987_BOARD_AW_CM358_USD
+ * WIFI_88W8801_BOARD_MURATA_2DS_USD
+ * WIFI_IW416_BOARD_MURATA_1XK_USD
+ * WIFI_88W8987_BOARD_MURATA_1ZM_USD
+ */
+/* @TEST_ANCHOR */
+#define WIFI_88W8801_BOARD_AW_NM191_USD
+/* @END_TEST_ANCHOR */
+
+
+/* Wi-Fi boards configuration list */
+
+/* AzureWave AW-NM191-uSD */
+#if defined(WIFI_88W8801_BOARD_AW_NM191_USD)
+#define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_WW.h"
+#define SD8801
+#define SDMMCHOST_OPERATION_VOLTAGE_1V8
+#define WIFI_BT_USE_USD_INTERFACE
+#define WLAN_ED_MAC_CTRL \
+ { \
+ .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x1B \
+ }
+
+/* AzureWave AW-NM191MA */
+#elif defined(WIFI_88W8801_BOARD_AW_NM191MA)
+#define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_WW.h"
+#define SD8801
+#define SDMMCHOST_OPERATION_VOLTAGE_1V8
+#define WIFI_BT_USE_M2_INTERFACE
+#define WLAN_ED_MAC_CTRL \
+ { \
+ .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x1B \
+ }
+
+/* AzureWave AW-AM457-uSD */
+#elif defined(WIFI_IW416_BOARD_AW_AM457_USD)
+#define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_WW.h"
+#define SD8978
+#define SDMMCHOST_OPERATION_VOLTAGE_1V8
+#define WIFI_BT_USE_USD_INTERFACE
+#define OVERRIDE_CALIBRATION_DATA "WIFI_IW416_BOARD_AW_AM457_CAL_DATA_EXT.h"
+#define WLAN_ED_MAC_CTRL \
+ { \
+ .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x9, .ed_ctrl_5g = 0x1, .ed_offset_5g = 0xC \
+ }
+
+/* AzureWave AW-AM457MA */
+#elif defined(WIFI_IW416_BOARD_AW_AM457MA)
+#define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_WW.h"
+#define SD8978
+#define SDMMCHOST_OPERATION_VOLTAGE_1V8
+#define WIFI_BT_USE_M2_INTERFACE
+#define OVERRIDE_CALIBRATION_DATA "WIFI_IW416_BOARD_AW_AM457_CAL_DATA_EXT.h"
+#define WLAN_ED_MAC_CTRL \
+ { \
+ .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x9, .ed_ctrl_5g = 0x1, .ed_offset_5g = 0xC \
+ }
+
+/* AzureWave AW-AM510-uSD */
+#elif defined(WIFI_IW416_BOARD_AW_AM510_USD)
+#define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_WW.h"
+#define SD8978
+#define SDMMCHOST_OPERATION_VOLTAGE_1V8
+#define WIFI_BT_USE_USD_INTERFACE
+#define WLAN_ED_MAC_CTRL \
+ { \
+ .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x9, .ed_ctrl_5g = 0x1, .ed_offset_5g = 0xC \
+ }
+
+/* AzureWave AW-AM510MA */
+#elif defined(WIFI_IW416_BOARD_AW_AM510MA)
+#define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_WW.h"
+#define SD8978
+#define SDMMCHOST_OPERATION_VOLTAGE_1V8
+#define WIFI_BT_USE_M2_INTERFACE
+#define WLAN_ED_MAC_CTRL \
+ { \
+ .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x9, .ed_ctrl_5g = 0x1, .ed_offset_5g = 0xC \
+ }
+
+/* AzureWave AW-CM358-uSD */
+#elif defined(WIFI_88W8987_BOARD_AW_CM358_USD)
+#define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_WW.h"
+#define SD8987
+#define SDMMCHOST_OPERATION_VOLTAGE_1V8
+#define SD_TIMING_MAX kSD_TimingDDR50Mode
+#define WIFI_BT_USE_USD_INTERFACE
+#define WLAN_ED_MAC_CTRL \
+ { \
+ .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x9, .ed_ctrl_5g = 0x1, .ed_offset_5g = 0xC \
+ }
+
+/* AzureWave AW-CM358MA */
+#elif defined(WIFI_88W8987_BOARD_AW_CM358MA)
+#define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_WW.h"
+#define SD8987
+#define SDMMCHOST_OPERATION_VOLTAGE_1V8
+#define SD_TIMING_MAX kSD_TimingDDR50Mode
+#define WIFI_BT_USE_M2_INTERFACE
+#define WLAN_ED_MAC_CTRL \
+ { \
+ .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x9, .ed_ctrl_5g = 0x1, .ed_offset_5g = 0xC \
+ }
+
+/* Murata 2DS + Murata uSD-M.2 adapter */
+#elif defined(WIFI_88W8801_BOARD_MURATA_2DS_USD)
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_2DS_CA.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_2DS_EU.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_2DS_JP.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_2DS_US.h"
+#define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_2DS_WW.h"
+#define SD8801
+#define SDMMCHOST_OPERATION_VOLTAGE_1V8
+#define SD_TIMING_MAX kSD_TimingSDR25HighSpeedMode
+#define WIFI_BT_USE_USD_INTERFACE
+#define WLAN_ED_MAC_CTRL \
+ { \
+ .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x0E \
+ }
+
+/* Murata 2DS */
+#elif defined(WIFI_88W8801_BOARD_MURATA_2DS_M2)
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_2DS_CA.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_2DS_EU.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_2DS_JP.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_2DS_US.h"
+#define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_2DS_WW.h"
+#define SD8801
+#define SDMMCHOST_OPERATION_VOLTAGE_1V8
+#define SD_TIMING_MAX kSD_TimingSDR25HighSpeedMode
+#define WIFI_BT_USE_M2_INTERFACE
+#define WLAN_ED_MAC_CTRL \
+ { \
+ .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x0E \
+ }
+
+/* Murata 1XK + Murata uSD-M.2 adapter */
+#elif defined(WIFI_IW416_BOARD_MURATA_1XK_USD)
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1XK_CA.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1XK_EU.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1XK_JP.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1XK_US.h"
+#define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1XK_WW.h"
+#define SD8978
+#define SDMMCHOST_OPERATION_VOLTAGE_1V8
+#define SD_TIMING_MAX kSD_TimingDDR50Mode
+#define WIFI_BT_USE_USD_INTERFACE
+#define WLAN_ED_MAC_CTRL \
+ { \
+ .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x0, .ed_ctrl_5g = 0x1, .ed_offset_5g = 0x6 \
+ }
+
+/* Murata 1XK */
+#elif defined(WIFI_IW416_BOARD_MURATA_1XK_M2)
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1XK_CA.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1XK_EU.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1XK_JP.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1XK_US.h"
+#define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1XK_WW.h"
+#define SD8978
+#define SDMMCHOST_OPERATION_VOLTAGE_1V8
+#define SD_TIMING_MAX kSD_TimingDDR50Mode
+#define WIFI_BT_USE_M2_INTERFACE
+#define WLAN_ED_MAC_CTRL \
+ { \
+ .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x0, .ed_ctrl_5g = 0x1, .ed_offset_5g = 0x6 \
+ }
+
+/* Murata 1ZM + Murata uSD-M.2 adapter */
+#elif defined(WIFI_88W8987_BOARD_MURATA_1ZM_USD)
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1ZM_CA.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1ZM_EU.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1ZM_JP.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1ZM_US.h"
+#define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1ZM_WW.h"
+#define SD8987
+#define SDMMCHOST_OPERATION_VOLTAGE_1V8
+#define SD_TIMING_MAX kSD_TimingDDR50Mode
+#define WIFI_BT_USE_USD_INTERFACE
+#define WLAN_ED_MAC_CTRL \
+ { \
+ .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x6, .ed_ctrl_5g = 0x1, .ed_offset_5g = 0x6 \
+ }
+
+/* Murata 1ZM */
+#elif defined(WIFI_88W8987_BOARD_MURATA_1ZM_M2)
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1ZM_CA.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1ZM_EU.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1ZM_JP.h"
+// #define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1ZM_US.h"
+#define WIFI_BT_TX_PWR_LIMITS "wlan_txpwrlimit_cfg_murata_1ZM_WW.h"
+#define SD8987
+#define SDMMCHOST_OPERATION_VOLTAGE_1V8
+#define SD_TIMING_MAX kSD_TimingDDR50Mode
+#define WIFI_BT_USE_M2_INTERFACE
+#define WLAN_ED_MAC_CTRL \
+ { \
+ .ed_ctrl_2g = 0x1, .ed_offset_2g = 0x6, .ed_ctrl_5g = 0x1, .ed_offset_5g = 0x6 \
+ }
+
+#else
+#error "Please define macro related to wifi board"
+#endif
+
+/* debug options */
+#ifndef CONFIG_WLCMGR_DEBUG
+#define CONFIG_WLCMGR_DEBUG
+#endif
+
+#include "wifi_config.h"
+
+
+
+#endif
\ No newline at end of file
diff --git a/third-party/fsl_wifi/incl/port/fsl_wifi_port.h b/third-party/fsl_wifi/incl/port/fsl_wifi_port.h
new file mode 100644
index 0000000000000000000000000000000000000000..8095a0b9592f16daccafdb517d56677fc2d87666
--- /dev/null
+++ b/third-party/fsl_wifi/incl/port/fsl_wifi_port.h
@@ -0,0 +1,25 @@
+#ifndef __FSL_WIFI_PORT_H__
+#define __FSL_WIFI_PORT_H__
+
+#include
+#include "ftypes.h"
+#include "fdebug.h"
+#include "fearly_uart.h"
+
+#define PRINTF printf
+#define GETCHAR GetByte
+#define PUTCHAR OutByte
+
+#ifndef bool
+#define bool boolean
+#endif
+
+#ifndef true
+#define true 1
+#endif
+
+#ifndef false
+#define false 0
+#endif
+
+#endif
\ No newline at end of file
diff --git a/third-party/fsl_wifi/incl/port/lwip/hooks/lwip_default_hooks.h b/third-party/fsl_wifi/incl/port/lwip/hooks/lwip_default_hooks.h
new file mode 100644
index 0000000000000000000000000000000000000000..25e45938e96b0ab38f64b5173f31b8327f2eacf6
--- /dev/null
+++ b/third-party/fsl_wifi/incl/port/lwip/hooks/lwip_default_hooks.h
@@ -0,0 +1,23 @@
+/** @file lwip_default_hooks.h
+ *
+ * @brief This file provides lwip porting code
+ *
+ * Copyright 2008-2023 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+#ifndef _LWIP_DEFAULT_HOOKS_H_
+#define _LWIP_DEFAULT_HOOKS_H_
+#ifdef CONFIG_CLOUD_KEEP_ALIVE
+#include "lwip/priv/tcp_priv.h"
+#include "lwip/tcp.h"
+#include "lwip/pbuf.h"
+#endif
+
+struct netif *lwip_hook_ip4_route_src(const ip4_addr_t *src, const ip4_addr_t *dest);
+
+#ifdef CONFIG_CLOUD_KEEP_ALIVE
+u32_t *lwip_hook_tcp_out_add_tcpopts(struct pbuf *p, struct tcp_hdr *hdr, const struct tcp_pcb *pcb, u32_t *opts);
+#endif
+
+#endif
diff --git a/third-party/fsl_wifi/incl/port/lwip/netif_decl.h b/third-party/fsl_wifi/incl/port/lwip/netif_decl.h
new file mode 100644
index 0000000000000000000000000000000000000000..038a0a18f41f574e2631fe68968ab4ed5a804bd2
--- /dev/null
+++ b/third-party/fsl_wifi/incl/port/lwip/netif_decl.h
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2008-2022 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#include
+#include
+#include
+#include
+#include
+
+#include "lwip/opt.h"
+#include "lwip/def.h"
+#include "lwip/mem.h"
+#include "lwip/pbuf.h"
+#include "lwip/udp.h"
+#include "lwip/sys.h"
+#ifdef CONFIG_IPV6
+#include "lwip/ethip6.h"
+#endif /* CONFIG_IPV6 */
+#include
+#include
+#include "netif/etharp.h"
+#include "netif/ethernet.h"
+#include "netif/ppp/pppoe.h"
+
+/*------------------------------------------------------*/
+/*
+ * Packets of this type need o be handled
+ * for WPS and Supplicant
+ */
+#define ETHTYPE_EAPOL 0x888EU /* EAPOL */
+
+PACK_STRUCT_BEGIN
+/* This is an Token-Ring LLC structure */
+struct eth_llc_hdr
+{
+ PACK_STRUCT_FIELD(u8_t dsap); /* destination SAP */
+ PACK_STRUCT_FIELD(u8_t ssap); /* source SAP */
+ PACK_STRUCT_FIELD(u8_t llc); /* LLC control field */
+ PACK_STRUCT_FIELD(u8_t protid[3]); /* protocol id */
+ PACK_STRUCT_FIELD(u16_t type); /* ether type field */
+} PACK_STRUCT_STRUCT;
+PACK_STRUCT_END
+
+#define SIZEOF_ETH_LLC_HDR (8U)
+
+/* Define those to better describe your network interface. */
+#define IFNAME0 'm'
+#define IFNAME1 'l'
+
+/*
+ * It was observed that Wi-Fi card does not wakeup
+ * immediately after call to wlan_wakeup_card.
+ * The code tries to wakeup the card by writing
+ * in SDIO register.
+ * It waits for 20 ms for AWAKE event from Wi-Fi card,
+ * if AWAKE event is not generated or received by MCU code
+ * it returns error and does not send a packet out.
+ * This is observed with 8801 Wi-Fi card.
+ * So for 8801 based platforms the wait time is now 35 ms.
+ */
+
+#define MAX_WAIT_TIME 35
+#define MAX_INTERFACES_SUPPORTED 3U
+
+/* The time to block waiting for input. */
+#define emacBLOCK_TIME_WAITING_FOR_INPUT ((portTickType)100)
+/*------------------------------------------------------*/
+extern int wlan_get_mac_address(uint8_t *dest);
+extern void wlan_wake_up_card(void);
+
+
+
+#ifdef CONFIG_WPA_SUPP
+void (*l2_packet_rx_callback)(const struct pbuf *p);
+#endif /* CONFIG_HOST_SUPP */
+
+void wrapper_wlan_update_uap_rxrate_info(RxPD *rxpd);
+
+int wrapper_wlan_handle_rx_packet(t_u16 datalen, RxPD *rxpd, void *p, void *payload);
+
+int wrapper_wlan_handle_amsdu_rx_packet(const t_u8 *rcvdata, const t_u16 datalen);
+
+
+/**
+ * Helper struct to hold private data used to operate your ethernet interface.
+ * Keeping the ethernet address of the MAC in this struct is not necessary
+ * as it is already kept in the struct netif.
+ * But this is only an example, anyway...
+ */
+struct ethernetif
+{
+ struct eth_addr *ethaddr;
+ /* Interface to bss type identification that tells the FW wherether
+ the data is for STA for UAP */
+ t_u8 interface;
+ /* Add whatever per-interface state that is needed here. */
+};
diff --git a/third-party/fsl_wifi/incl/port/lwip/wm_net.h b/third-party/fsl_wifi/incl/port/lwip/wm_net.h
new file mode 100644
index 0000000000000000000000000000000000000000..9800ce1622ab81eed0fc6877aaea94b322455704
--- /dev/null
+++ b/third-party/fsl_wifi/incl/port/lwip/wm_net.h
@@ -0,0 +1,521 @@
+/*
+ * Copyright 2008-2023 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/*! \file wm_net.h
+ * \brief Network Abstraction Layer
+ *
+ * This provides the calls related to the network layer. The SDK uses lwIP as
+ * the network stack.
+ *
+ * Here we document the network utility functions provided by the SDK. The
+ * detailed lwIP API documentation can be found at:
+ * http://lwip.wikia.com/wiki/Application_API_layers
+ *
+ */
+
+#ifndef _WM_NET_H_
+#define _WM_NET_H_
+
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+
+#ifndef LWIP_TCPIP_CORE_LOCKING
+#error "LWIP TCP/IP Core Locking is not enabled"
+#endif
+
+#if CONFIG_IPV6 && !LWIP_IPV6
+#error "CONFIG_IPV6 is enabled, but LWIP_IPV6 is not, enable it from lwipopts.h"
+#elif LWIP_IPV6 && !CONFIG_IPV6
+#error "LWIP_IPV6 is enabled, but CONFIG_IPV6 is not, enable it from wifi_config.h"
+#endif
+
+#if CONFIG_IPV6 && LWIP_IPV6
+#ifndef CONFIG_MAX_IPV6_ADDRESSES
+#error "Define CONFIG_MAX_IPV6_ADDRESSES same as LWIP_IPV6_NUM_ADDRESSES in wifi_config.h"
+#else
+#if CONFIG_MAX_IPV6_ADDRESSES != LWIP_IPV6_NUM_ADDRESSES
+#error "CONFIG_MAX_IPV6_ADDRESSES must be equal to LWIP_IPV6_NUM_ADDRESSES"
+#endif
+#endif
+#endif
+
+#if (!defined(LWIP_NETIF_EXT_STATUS_CALLBACK) || (LWIP_NETIF_EXT_STATUS_CALLBACK == 0))
+#error "Define LWIP_NETIF_EXT_STATUS_CALLBACK as 1 in lwipopts.h"
+#endif
+
+#ifdef CONFIG_WPA_SUPP
+#if (!defined(LWIP_NUM_NETIF_CLIENT_DATA) || (LWIP_NUM_NETIF_CLIENT_DATA < 2))
+#error "Define LWIP_NUM_NETIF_CLIENT_DATA atleast 2 in lwipopts.h"
+#endif
+#endif
+
+/*
+ * fixme: This dependancy of wm_net on wlc manager header should be
+ * removed. This is the lowest level file used to access lwip
+ * functionality and should not contain higher layer dependancies.
+ */
+#include
+
+#define NET_SUCCESS WM_SUCCESS
+#define NET_ERROR (-WM_FAIL)
+#define NET_ENOBUFS ENOBUFS
+
+#define NET_BLOCKING_OFF 1
+#define NET_BLOCKING_ON 0
+
+/* Error Codes
+ * lwIP provides all standard errnos defined in arch.h, hence no need to
+ * redefine them here.
+ * */
+
+/* To be consistent with naming convention */
+#define net_socket(domain, type, protocol) socket(domain, type, protocol)
+#define net_select(nfd, read, write, except, timeout) select(nfd, read, write, except, timeout)
+#define net_bind(sock, addr, len) bind(sock, addr, len)
+#define net_listen(sock, backlog) listen(sock, backlog)
+#define net_close(c) close((c))
+#define net_accept(sock, addr, len) accept(sock, addr, len)
+#define net_shutdown(c, b) shutdown(c, b)
+#define net_connect(sock, addr, len) connect(sock, addr, len)
+#define net_read(sock, data, len) read(sock, data, len)
+#define net_write(sock, data, len) write(sock, data, len)
+
+/** Set hostname for network interface
+ *
+ * \param[in] hostname Hostname to be set.
+ *
+ * \note NULL is a valid value for hostname.
+ *
+ * \return WM_SUCESS
+ */
+int net_dhcp_hostname_set(char *hostname);
+
+/** Deactivate the dhcp timer
+ *
+ */
+void net_stop_dhcp_timer(void);
+
+/** Set socket blocking option as on or off
+ *
+ * \param[in] sock socket number to be set for blocking option.
+ * \param[in] state set blocking on or off
+ *
+ * \return WM_SUCESS otherwise standard LWIP error codes.
+ */
+static inline int net_socket_blocking(int sock, int state)
+{
+ return ioctlsocket(sock, FIONBIO, &state);
+}
+
+/** Get error number from provided socket
+ *
+ * \param[in] sock socket number to get error number.
+ *
+ * \return error number.
+ */
+static inline int net_get_sock_error(int sock)
+{
+ int ret = 0;
+ switch (errno)
+ {
+ case EWOULDBLOCK:
+ ret = -WM_E_AGAIN;
+ break;
+ case EBADF:
+ ret = -WM_E_BADF;
+ break;
+ case ENOBUFS:
+ ret = -WM_E_NOMEM;
+ break;
+ default:
+ ret = errno;
+ break;
+ }
+ return ret;
+}
+
+/** Converts Internet host address from the IPv4 dotted-decimal notation into
+ * binary form (in network byte order)
+ *
+ * \param[in] cp IPv4 host address in dotted-decimal notation.
+ *
+ * \return IPv4 address in binary form
+ */
+static inline uint32_t net_inet_aton(const char *cp)
+{
+ struct in_addr addr;
+ addr.s_addr = 0;
+ (void)inet_aton(cp, ((void *)&addr));
+ return addr.s_addr;
+}
+
+/** set MAC hardware address to lwip network interface
+ *
+ * \param[in] stamac sta MAC address.
+ * \param[in] uapmac uap MAC address.
+ *
+ */
+void net_wlan_set_mac_address(unsigned char *stamac, unsigned char *uapmac);
+
+/**
+ * Get network host entry
+ *
+ * \param[in] cp Hostname or an IPv4 address in the standard dot notation.
+ * \param[in] hentry Pointer to pointer of host entry structure.
+ *
+ * \note This function is not thread safe. If thread safety is required
+ * please use lwip_getaddrinfo() - lwip_freeaddrinfo() combination.
+ *
+ * \return WM_SUCESS if operation successful.
+ * \return -WM_FAIL if operation fails.
+ */
+static inline int net_gethostbyname(const char *cp, struct hostent **hentry)
+{
+ struct hostent *he;
+ if ((he = gethostbyname(cp)) == NULL)
+ {
+ return -WM_FAIL;
+ }
+
+ *hentry = he;
+ return WM_SUCCESS;
+}
+
+/** Converts Internet host address in network byte order to a string in IPv4
+ * dotted-decimal notation
+ *
+ * \param[in] addr IP address in network byte order.
+ * \param[out] cp buffer in which IPv4 dotted-decimal string is returned.
+ *
+ */
+static inline void net_inet_ntoa(unsigned long addr, char *cp)
+{
+ struct ip4_addr saddr;
+ saddr.addr = addr;
+ /* No length, sigh! */
+ (void)strcpy(cp, inet_ntoa(saddr));
+}
+
+/** Check whether buffer is IPv4 or IPV6 packet type
+ *
+ * \param[in] buffer pointer to buffer where packet to be checked located.
+ *
+ * \return true if buffer packet type matches with IPv4 or IPv6, false otherwise.
+ *
+ */
+static inline bool net_is_ip_or_ipv6(const uint8_t *buffer)
+{
+ if (((const struct eth_hdr *)(const void *)buffer)->type == PP_HTONS(ETHTYPE_IP) ||
+ ((const struct eth_hdr *)(const void *)buffer)->type == PP_HTONS(ETHTYPE_IPV6))
+ {
+ return true;
+ }
+ return false;
+}
+
+/** Get interface handle from socket descriptor
+ *
+ * Given a socket descriptor this API returns which interface it is bound with.
+ *
+ * \param[in] sock socket descriptor
+ *
+ * \return[out] interface handle
+ */
+void *net_sock_to_interface(int sock);
+
+/** Initialize TCP/IP networking stack
+ *
+ * \return WM_SUCCESS on success
+ * \return -WM_FAIL otherwise
+ */
+int net_wlan_init(void);
+
+/** DiInitialize TCP/IP networking stack
+ *
+ * \return WM_SUCCESS on success
+ * \return -WM_FAIL otherwise
+ */
+int net_wlan_deinit(void);
+
+/** Get STA interface netif structure pointer
+ *
+ * \rerurn A pointer to STA interface netif structure
+ *
+ */
+struct netif *net_get_sta_interface(void);
+
+/** Get uAP interface netif structure pointer
+ *
+ * \rerurn A pointer to uAP interface netif structure
+ *
+ */
+struct netif *net_get_uap_interface(void);
+
+/** Get interface name for given netif
+ *
+ * \param[out] pif_name Buffer to store interface name
+ * \param[in] iface Interface to get the name
+ *
+ * \return WM_SUCCESS on success
+ * \return -WM_FAIL otherwise
+ *
+ */
+int net_get_if_name_netif(char *pif_name, struct netif *iface);
+
+/** Get client data index for storing private data in * netif.
+ *
+ * \return allocated client data index, -1 if error or
+ * not supported.
+ */
+int net_alloc_client_data_id();
+
+/** Get station interface handle
+ *
+ * Some APIs require the interface handle to be passed to them. The handle can
+ * be retrieved using this API.
+ *
+ * \return station interface handle
+ */
+void *net_get_sta_handle(void);
+#define net_get_mlan_handle() net_get_sta_handle()
+
+/** Get micro-AP interface handle
+ *
+ * Some APIs require the interface handle to be passed to them. The handle can
+ * be retrieved using this API.
+ *
+ * \return micro-AP interface handle
+ */
+void *net_get_uap_handle(void);
+
+/** Take interface up
+ *
+ * Change interface state to up. Use net_get_sta_handle(),
+ * net_get_uap_handle() to get interface handle.
+ *
+ * \param[in] intrfc_handle interface handle
+ *
+ * \return void
+ */
+void net_interface_up(void *intrfc_handle);
+
+/** Take interface down
+ *
+ * Change interface state to down. Use net_get_sta_handle(),
+ * net_get_uap_handle() to get interface handle.
+ *
+ * \param[in] intrfc_handle interface handle
+ *
+ * \return void
+ */
+void net_interface_down(void *intrfc_handle);
+
+/** Stop DHCP client on given interface
+ *
+ * Stop the DHCP client on given interface state. Use net_get_sta_handle(),
+ * net_get_uap_handle() to get interface handle.
+ *
+ * \param[in] intrfc_handle interface handle
+ *
+ * \return void
+ */
+void net_interface_dhcp_stop(void *intrfc_handle);
+
+/** Cleanup DHCP client on given interface
+ *
+ * Cleanup the DHCP client on given interface state. Use net_get_sta_handle(),
+ * net_get_uap_handle() to get interface handle.
+ *
+ * \param[in] intrfc_handle interface handle
+ *
+ * \return void
+ */
+void net_interface_dhcp_cleanup(void *intrfc_handle);
+
+/** Configure IP address for interface
+ *
+ * \param[in] addr Address that needs to be configured.
+ * \param[in] intrfc_handle Handle for network interface to be configured.
+ *
+ * \return WM_SUCCESS on success or an error code.
+ */
+int net_configure_address(struct wlan_ip_config *addr, void *intrfc_handle);
+
+/** Configure DNS server address
+ *
+ * \param[in] ip IP address of the DNS server to set
+ * \param[in] role Network wireless BSS Role
+ *
+ */
+void net_configure_dns(struct wlan_ip_config *ip, enum wlan_bss_role role);
+
+/** Get interface IP Address in \ref wlan_ip_config
+ *
+ * This function will get the IP address of a given interface. Use
+ * net_get_sta_handle(), net_get_uap_handle() to get
+ * interface handle.
+ *
+ * \param[out] addr \ref wlan_ip_config
+ * \param[in] intrfc_handle interface handle
+ *
+ * \return WM_SUCCESS on success or error code.
+ */
+int net_get_if_addr(struct wlan_ip_config *addr, void *intrfc_handle);
+
+#ifdef CONFIG_IPV6
+/** Get interface IPv6 Addresses & their states in \ref wlan_ip_config
+ *
+ * This function will get the IPv6 addresses & address states of a given
+ * interface. Use net_get_sta_handle() to get interface handle.
+ *
+ * \param[out] addr \ref wlan_ip_config
+ * \param[in] intrfc_handle interface handle
+ *
+ * \return WM_SUCCESS on success or error code.
+ */
+int net_get_if_ipv6_addr(struct wlan_ip_config *addr, void *intrfc_handle);
+
+/** Get list of preferred IPv6 Addresses of a given interface
+ * in \ref wlan_ip_config
+ *
+ * This function will get the list of IPv6 addresses whose address state
+ * is Preferred.
+ * Use net_get_sta_handle() to get interface handle.
+ *
+ * \param[out] addr \ref wlan_ip_config
+ * \param[in] intrfc_handle interface handle
+ *
+ * \return Number of IPv6 addresses whose address state is Preferred
+ */
+int net_get_if_ipv6_pref_addr(struct wlan_ip_config *addr, void *intrfc_handle);
+
+/** Get the description of IPv6 address state
+ *
+ * This function will get the IPv6 address state description like -
+ * Invalid, Preferred, Deprecated
+ *
+ * \param[in] addr_state Address state
+ *
+ * \return IPv6 address state description
+ */
+char *ipv6_addr_state_to_desc(unsigned char addr_state);
+
+/** Get the description of IPv6 address
+ *
+ * This function will get the IPv6 address type description like -
+ * Linklocal, Global, Sitelocal, Uniquelocal
+ *
+ * \param[in] ipv6_conf Pointer to IPv6 configuration of type \ref ipv6_config
+ *
+ * \return IPv6 address description
+ */
+char *ipv6_addr_addr_to_desc(struct ipv6_config *ipv6_conf);
+
+/** Get the description of IPv6 address type
+ *
+ * This function will get the IPv6 address type description like -
+ * Linklocal, Global, Sitelocal, Uniquelocal
+ *
+ * \param[in] ipv6_conf Pointer to IPv6 configuration of type \ref ipv6_config
+ *
+ * \return IPv6 address type description
+ */
+char *ipv6_addr_type_to_desc(struct ipv6_config *ipv6_conf);
+#endif /* CONFIG_IPV6 */
+
+/** Get interface Name string containing name and number
+ *
+ * This function will get the string containing name and number for given interface.
+ * Use net_get_sta_handle(), net_get_uap_handle() to get
+ * interface handle.
+ *
+ * \param[out] if_name interface name pointer
+ * \param[in] intrfc_handle interface handle
+ *
+ * \return WM_SUCCESS on success or error code.
+ */
+int net_get_if_name(char *if_name, void *intrfc_handle);
+
+/** Get interface IP Address
+ *
+ * This function will get the IP Address of a given interface. Use
+ * net_get_sta_handle(), net_get_uap_handle() to get
+ * interface handle.
+ *
+ * \param[out] ip ip address pointer
+ * \param[in] intrfc_handle interface handle
+ *
+ * \return WM_SUCCESS on success or error code.
+ */
+int net_get_if_ip_addr(uint32_t *ip, void *intrfc_handle);
+
+/** Get interface IP Subnet-Mask
+ *
+ * This function will get the Subnet-Mask of a given interface. Use
+ * net_get_sta_handle(), net_get_uap_handle() to get
+ * interface handle.
+ *
+ * \param[in] mask Subnet Mask pointer
+ * \param[in] intrfc_handle interface
+ *
+ * \return WM_SUCCESS on success or error code.
+ */
+int net_get_if_ip_mask(uint32_t *nm, void *intrfc_handle);
+
+/** Initialize the network stack
+ *
+ * This function initializes the network stack. This function is
+ * called by wlan_start().
+ *
+ * Applications may optionally call this function directly:
+ * if they wish to use the networking stack (loopback interface)
+ * without the wlan functionality.
+ * if they wish to initialize the networking stack even before wlan
+ * comes up.
+ *
+ * \note This function may safely be called multiple times.
+ */
+void net_ipv4stack_init(void);
+
+#ifdef CONFIG_IPV6
+/** Initialize the IPv6 network stack
+ *
+ * \param[in] netif network interface on which ipv6 stack is initialized.
+ *
+ */
+void net_ipv6stack_init(struct netif *netif);
+#endif
+
+/** Display network statistics
+ */
+void net_stat(void);
+
+
+#ifndef CONFIG_WPA_SUPP
+void rx_mgmt_register_callback(int (*rx_mgmt_cb_fn)(const enum wlan_bss_type bss_type,
+ const wifi_mgmt_frame_t *frame,
+ const size_t len));
+
+void rx_mgmt_deregister_callback(void);
+#endif
+
+#endif /* _WM_NET_H_ */
diff --git a/third-party/fsl_wifi/incl/port/os/wm_os.h b/third-party/fsl_wifi/incl/port/os/wm_os.h
new file mode 100644
index 0000000000000000000000000000000000000000..37e1529b9a577620a328f87325f700900ebe6dfc
--- /dev/null
+++ b/third-party/fsl_wifi/incl/port/os/wm_os.h
@@ -0,0 +1,1109 @@
+/*
+ * Copyright 2008-2023 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/*! \file wm_os.h
+ * \brief OS Abstraction Layer
+ *
+ * The OS abstraction layer provides wrapper APIs over some of the
+ * commonly used OS primitives. Since the behaviour and semantics of the various
+ * OSes differs widely, some abstraction APIs require a specific handling as
+ * listed below.
+ *
+ * \section wm_os_usage Usage
+ *
+ * The OS abstraction layer provides the following types of primitives:
+ *
+ * - Thread: Create or delete a thread using os_thread_create() or
+ * os_thread_delete(). Block a thread using os_thread_sleep(). Complete a
+ * thread's execution using os_thread_self_complete().
+ * - Message Queue: Create or delete a message queue using os_queue_create() or
+ * os_queue_delete(). Send a message using os_queue_send() and received a
+ * message using os_queue_recv().
+ * - Mutex: Create or delete a mutex using os_mutex_create() or
+ * os_mutex_delete(). Acquire a mutex using os_mutex_get() and release it
+ * using os_mutex_put().
+ * - Semaphores: Create or delete a semaphore using os_semaphore_create() /
+ * os_semaphore_create_counting() or os_semaphore_delete. Acquire a semaphore
+ * using os_semaphore_get() and release it using os_semaphore_put().
+ * - Timers: Create or delete a timer using os_timer_create() or
+ * os_timer_delete(). Change the timer using os_timer_change(). Activate or
+ * de-activate the timer using os_timer_activate() or
+ * os_timer_deactivate(). Reset a timer using os_timer_reset().
+ * - Dynamic Memory Allocation: Dynamically allocate memory using
+ * os_mem_alloc(), os_mem_calloc() and free it using
+ * os_mem_free().
+ *
+ */
+
+#ifndef _WM_OS_H_
+#define _WM_OS_H_
+
+#include
+
+#include "FreeRTOS.h"
+#include "task.h"
+#include "queue.h"
+#include "semphr.h"
+#include "timers.h"
+#include "portmacro.h"
+
+#include
+#include
+
+#ifdef CONFIG_OS_DEBUG
+#define os_dprintf(...) ll_log("[OS]" __VA_ARGS__)
+#else
+#define os_dprintf(...)
+#endif
+
+bool is_isr_context(void);
+
+/**
+ * Get the current value of free running microsecond counter
+ *
+ * \note This will wraparound after CNTMAX and the caller is expected to
+ * take care of this.
+ *
+ * @return The current value of microsecond counter.
+ */
+#if 0
+static inline uint32_t os_get_usec_counter()
+{
+ return (CNTMAX - SysTick->VAL) / CPU_CLOCK_TICKSPERUSEC;
+}
+#endif
+
+/** Force a context switch */
+#define os_thread_relinquish() taskYIELD()
+
+/** Get current OS tick counter value
+ *
+ * \return 32 bit value of ticks since boot-up
+ */
+unsigned os_ticks_get(void);
+
+#if 0
+/** Get (wraparound safe) current OS tick counter.
+ *
+ * Returns a 64 bit unsigned integer. To give a rough idea,
+ * for an OS tick period of 1 mS it takes thousands of years
+ * before the counter value returned by this API to wrap around.
+ * Thus, users of this API can ignore the wrap around problem.
+ *
+ * \return 64 bit value of ticks since boot-up
+ */
+static inline unsigned long long os_total_ticks_get()
+{
+ if (is_isr_context())
+ return xTaskGetTotalTickCountFromISR();
+ else
+ return xTaskGetTotalTickCount();
+}
+#endif
+
+/** Get ticks to next thread wakeup */
+#define os_ticks_to_unblock() xTaskGetUnblockTime()
+
+/**
+ * Returns time in micro-secs since bootup
+ *
+ * @note The value returned will wrap around after sometime and caller is
+ * expected to guard itself against this.
+ *
+ * @return Time in micro-secs since bootup
+ */
+unsigned int os_get_timestamp(void);
+
+/** Convert milliseconds to OS ticks
+ *
+ * This function converts the given millisecond value to the number of OS
+ * ticks.
+ *
+ * This is useful as functions like os_thread_sleep() accept only ticks
+ * as input.
+ *
+ * @param[in] msecs Milliseconds
+ *
+ * @return Number of OS ticks corresponding to msecs
+ */
+/*! @brief Convert the milliseconds to ticks in FreeRTOS. */
+uint32_t os_msec_to_ticks(uint32_t msecs);
+
+/** Convert ticks to milliseconds
+ *
+ * This function converts the given ticks value to milliseconds. This is useful
+ * as some functions, like os_ticks_get(), return values in units of OS ticks.
+ *
+ * @param[in] ticks OS ticks
+ *
+ * @return Number of milliseconds corresponding to ticks
+ */
+unsigned long os_ticks_to_msec(unsigned long ticks);
+
+/*** Thread Management ***/
+typedef void *os_thread_arg_t;
+
+/**
+ * Structure to be used during call to the function
+ * os_thread_create(). Please use the macro \ref os_thread_stack_define
+ * instead of using this structure directly.
+ */
+typedef struct os_thread_stack
+{
+ /** Total stack size */
+ size_t size;
+} os_thread_stack_t;
+
+/**
+ * Helper macro to define the stack size (in bytes) before a new thread is
+ * created using the function os_thread_create().
+ */
+#define os_thread_stack_define(stackname, stacksize) \
+ os_thread_stack_t stackname = {(stacksize) / (sizeof(portSTACK_TYPE))}
+
+typedef TaskHandle_t os_thread_t;
+
+const char *get_current_taskname(void);
+
+/** Create new thread
+ *
+ * This function starts a new thread. The new thread starts execution by
+ * invoking main_func(). The parameter arg is passed as the sole argument of
+ * main_func().
+ *
+ * After finishing execution, the new thread should either call:
+ * - os_thread_self_complete() to suspend itself OR
+ * - os_thread_delete() to delete itself
+ *
+ * Failing to do this and just returning from main_func() will result in
+ * undefined behavior.
+ *
+ *
+ * @param[out] thandle Pointer to a thread handle
+ * @param[in] name Name of the new thread. A copy of this string will be
+ * made by the OS for itself. The maximum name length is defined by the
+ * macro configMAX_TASK_NAME_LEN in FreeRTOS header file . Any name length
+ * above it will be truncated.
+ * @param[in] main_func Function pointer to new thread function
+ * @param[in] arg The sole argument passed to main_func()
+ * @param[in] stack A pointer to initialized object of type \ref
+ * os_thread_stack_t. The object should be created and initialized using
+ * os_thread_stack_define().
+ * @param[in] prio The priority of the new thread. One value among
+ * OS_PRIO_0, OS_PRIO_1, OS_PRIO_2, OS_PRIO_3 and OS_PRIO_4 should be
+ * passed. OS_PRIO_0 represents the highest priority and OS_PRIO_4
+ * represents the lowest priority.
+ *
+ * @return WM_SUCCESS if thread was created successfully
+ * @return -WM_FAIL if thread creation failed
+ */
+int os_thread_create(os_thread_t *thandle,
+ const char *name,
+ void (*main_func)(os_thread_arg_t arg),
+ void *arg,
+ os_thread_stack_t *stack,
+ int prio);
+
+os_thread_t os_get_current_task_handle(void);
+
+/** Terminate a thread
+ *
+ * This function deletes a thread. The task being deleted will be removed from
+ * all ready, blocked, suspended and event lists.
+ *
+ * @param[in] thandle Pointer to the thread handle of the thread to be
+ * deleted. If self deletion is required NULL should be passed.
+ *
+ * @return WM_SUCCESS if operation success
+ * @return -WM_FAIL if operation fails
+ */
+int os_thread_delete(os_thread_t *thandle);
+
+/** Sleep for specified number of OS ticks
+ *
+ * This function causes the calling thread to sleep and block for the given
+ * number of OS ticks. The actual time that the task remains blocked depends on
+ * the tick rate. The function os_msec_to_ticks() is provided to convert from
+ * real-time to ticks.
+ *
+ * Any other thread can wake up this task specifically using the API
+ * os_thread_wait_abort()
+ *
+ * @param[in] ticks Number of ticks to sleep
+ *
+ * @return 0 If slept for given ticks or more
+ * @return Positive value if woken up before given ticks.
+ * @note The value returned is amount of ticks left before the task was
+ * to be originally scheduled to be woken up. So if sleep was for 10 ticks
+ * and the task is woken up after 8 ticks then 2 will be returned.
+ */
+void os_thread_sleep(uint32_t ticks);
+
+/** Suspend the given thread
+ *
+ * - The function os_thread_self_complete() will \b permanently suspend the
+ * given thread. Passing NULL will suspend the current thread. This
+ * function never returns.
+ * - The thread continues to consume system resources. To delete the thread
+ * the function os_thread_delete() needs to be called separately.
+ *
+ * @param[in] thandle Pointer to thread handle
+ */
+void os_thread_self_complete(os_thread_t *thandle);
+
+#ifndef CONFIG_WIFI_MAX_PRIO
+#error Define CONFIG_WIFI_MAX_PRIO in wifi_config.h
+#elif CONFIG_WIFI_MAX_PRIO < 4
+#error CONFIG_WIFI_MAX_PRIO must be defined to be greater than or equal to 4
+#endif
+#define OS_PRIO_0 CONFIG_WIFI_MAX_PRIO /** High **/
+#define OS_PRIO_1 (CONFIG_WIFI_MAX_PRIO - 1)
+#define OS_PRIO_2 (CONFIG_WIFI_MAX_PRIO - 2)
+#define OS_PRIO_3 (CONFIG_WIFI_MAX_PRIO - 3)
+#define OS_PRIO_4 (CONFIG_WIFI_MAX_PRIO - 4) /** Low **/
+
+/** Structure used for queue definition */
+typedef struct os_queue_pool
+{
+ /** Size of the queue */
+ int size;
+} os_queue_pool_t;
+
+/** Define OS Queue pool
+ *
+ * This macro helps define the name and size of the queue to be created
+ * using the function os_queue_create().
+ */
+#define os_queue_pool_define(poolname, poolsize) os_queue_pool_t poolname = {poolsize};
+
+typedef QueueHandle_t os_queue_t;
+
+/** Create an OS queue
+ *
+ * This function creates a new queue instance. This allocates the storage
+ * required by the new queue and returns a handle for the queue.
+ *
+ * @param[out] qhandle Pointer to the handle of the newly created queue
+ * @param[in] name String specifying the name of the queue
+ * @param[in] msgsize The number of bytes each item in the queue will
+ * require. Items are queued by copy, not by reference, so this is the
+ * number of bytes that will be copied for each posted item. Each item on
+ * the queue must be the same size.
+ * @param[in] poolname The object of the type \ref os_queue_pool_t. The
+ * helper macro os_queue_pool_define() helps to define this object.
+ *
+ * @return WM_SUCCESS if queue creation was successful
+ * @return -WM_FAIL if queue creation failed
+ */
+int os_queue_create(os_queue_t *qhandle, const char *name, int msgsize, os_queue_pool_t *poolname);
+
+/** Wait Forever */
+#define OS_WAIT_FOREVER portMAX_DELAY
+/** Do Not Wait */
+#define OS_NO_WAIT 0
+
+/** Post an item to the back of the queue.
+ *
+ * This function posts an item to the back of a queue. The item is queued by
+ * copy, not by reference. This function can also be called from an interrupt
+ * service routine.
+ *
+ * @param[in] qhandle Pointer to the handle of the queue
+ * @param[in] msg A pointer to the item that is to be placed on the
+ * queue. The size of the items the queue will hold was defined when the
+ * queue was created, so this many bytes will be copied from msg
+ * into the queue storage area.
+ * @param[in] wait The maximum amount of time, in OS ticks, the task should
+ * block waiting for space to become available on the queue, should it already
+ * be full. The function os_msec_to_ticks() can be used to convert from
+ * real-time to OS ticks. The special values \ref OS_WAIT_FOREVER and \ref
+ * OS_NO_WAIT are provided to respectively wait infinitely or return
+ * immediately.
+ *
+ * @return WM_SUCCESS if send operation was successful
+ * @return -WM_E_INVAL if invalid parameters are passed
+ * @return -WM_FAIL if send operation failed
+ */
+int os_queue_send(os_queue_t *qhandle, const void *msg, unsigned long wait);
+
+/** Receive an item from queue
+ *
+ * This function receives an item from a queue. The item is received by copy so
+ * a buffer of adequate size must be provided. The number of bytes copied into
+ * the buffer was defined when the queue was created.
+ *
+ * @param[in] qhandle Pointer to handle of the queue
+ * @param[out] msg Pointer to the buffer into which the received item will
+ * be copied. The size of the items in the queue was defined when the queue was
+ * created. This pointer should point to a buffer as many bytes in size.
+ * @param[in] wait The maximum amount of time, in OS ticks, the task should
+ * block waiting for messages to arrive on the queue, should it already
+ * be empty. The function os_msec_to_ticks() can be used to convert from
+ * real-time to OS ticks. The special values \ref OS_WAIT_FOREVER and \ref
+ * OS_NO_WAIT are provided to respectively wait infinitely or return
+ * immediately.
+ *
+ * @return WM_SUCCESS if receive operation was successful
+ * @return -WM_E_INVAL if invalid parameters are passed
+ * @return -WM_FAIL if receive operation failed
+ *
+ * \note This function must not be used in an interrupt service routine.
+ */
+int os_queue_recv(os_queue_t *qhandle, void *msg, unsigned long wait);
+
+/** Delete queue
+ *
+ * This function deletes a queue. It frees all the memory allocated for storing
+ * of items placed on the queue.
+ *
+ * @param[in] qhandle Pointer to handle of the queue to be deleted.
+ *
+ * @return Currently always returns WM_SUCCESS
+ */
+int os_queue_delete(os_queue_t *qhandle);
+
+/** Return the number of messages stored in queue.
+ *
+ * @param[in] qhandle Pointer to handle of the queue to be queried.
+ *
+ * @returns Number of items in the queue
+ * @return -WM_E_INVAL if invalid parameters are passed
+ */
+int os_queue_get_msgs_waiting(os_queue_t *qhandle);
+
+/* Critical Sections */
+static inline unsigned long os_enter_critical_section(void)
+{
+ taskENTER_CRITICAL();
+ return WM_SUCCESS;
+}
+
+static inline void os_exit_critical_section(unsigned long state)
+{
+ taskEXIT_CRITICAL();
+}
+
+/*** Tick function */
+#define MAX_CUSTOM_HOOKS 4U
+
+extern void (*g_os_tick_hooks[MAX_CUSTOM_HOOKS])(void);
+extern void (*g_os_idle_hooks[MAX_CUSTOM_HOOKS])(void);
+
+/** Setup idle function
+ *
+ * This function sets up a callback function which will be called whenever the
+ * system enters the idle thread context.
+ *
+ * @param[in] func The callback function
+ *
+ * @return WM_SUCCESS on success
+ * @return -WM_FAIL on error
+ */
+int os_setup_idle_function(void (*func)(void));
+
+/** Setup tick function
+ *
+ * This function sets up a callback function which will be called on every
+ * SysTick interrupt.
+ *
+ * @param[in] func The callback function
+ *
+ * @return WM_SUCCESS on success
+ * @return -WM_FAIL on error
+ */
+int os_setup_tick_function(void (*func)(void));
+
+/** Remove idle function
+ *
+ * This function removes an idle callback function that was registered
+ * previously using os_setup_idle_function().
+ *
+ * @param[in] func The callback function
+ *
+ * @return WM_SUCCESS on success
+ * @return -WM_FAIL on error
+ */
+int os_remove_idle_function(void (*func)(void));
+
+/** Remove tick function
+ *
+ * This function removes a tick callback function that was registered
+ * previously using os_setup_tick_function().
+ *
+ * @param[in] func Callback function
+ * @return WM_SUCCESS on success
+ * @return -WM_FAIL on error
+ */
+int os_remove_tick_function(void (*func)(void));
+
+/*** Mutex ***/
+typedef SemaphoreHandle_t os_mutex_t;
+
+/** Priority Inheritance Enabled */
+#define OS_MUTEX_INHERIT 1
+/** Priority Inheritance Disabled */
+#define OS_MUTEX_NO_INHERIT 0
+
+/** Create mutex
+ *
+ * This function creates a mutex.
+ *
+ * @param [out] mhandle Pointer to a mutex handle
+ * @param [in] name Name of the mutex
+ * @param [in] flags Priority inheritance selection. Valid options are \ref
+ * OS_MUTEX_INHERIT or \ref OS_MUTEX_NO_INHERIT.
+ *
+ * @note Currently non-inheritance in mutex is not supported.
+ *
+ * @return WM_SUCCESS on success
+ * @return -WM_FAIL on error
+ */
+int os_mutex_create(os_mutex_t *mhandle, const char *name, int flags) WARN_UNUSED_RET;
+
+/** Acquire mutex
+ *
+ * This function acquires a mutex. Only one thread can acquire a mutex at any
+ * given time. If already acquired the callers will be blocked for the specified
+ * time duration.
+ *
+ * @param[in] mhandle Pointer to mutex handle
+ * @param[in] wait The maximum amount of time, in OS ticks, the task should
+ * block waiting for the mutex to be acquired. The function os_msec_to_ticks()
+ * can be used to convert from real-time to OS ticks. The special values \ref
+ * OS_WAIT_FOREVER and \ref OS_NO_WAIT are provided to respectively wait
+ * infinitely or return immediately.
+ *
+ * @return WM_SUCCESS when mutex is acquired
+ * @return -WM_E_INVAL if invalid parameters are passed
+ * @return -WM_FAIL on failure
+ */
+int os_mutex_get(os_mutex_t *mhandle, unsigned long wait);
+
+/** Release mutex
+ *
+ * This function releases a mutex previously acquired using os_mutex_get().
+ *
+ * @note The mutex should be released from the same thread context from which it
+ * was acquired. If you wish to acquire and release in different contexts,
+ * please use os_semaphore_get() and os_semaphore_put() variants.
+ *
+ * @param[in] mhandle Pointer to the mutex handle
+ *
+ * @return WM_SUCCESS when mutex is released
+ * @return -WM_E_INVAL if invalid parameters are passed
+ * @return -WM_FAIL on failure
+ */
+int os_mutex_put(os_mutex_t *mhandle);
+
+/**
+ * Create recursive mutex
+ *
+ * This function creates a recursive mutex. A mutex used recursively can be
+ * 'get' repeatedly by the owner. The mutex doesn't become available again
+ * until the owner has called os_recursive_mutex_put() for each
+ * successful 'get' request.
+ *
+ * @note This type of mutex uses a priority inheritance mechanism so a
+ * task 'get'ing a mutex MUST ALWAYS 'put' the mutex back once no longer
+ * required.
+ *
+ * @param[out] mhandle Pointer to a mutex handle
+ * @param[in] name Name of the mutex as NULL terminated string
+ *
+ * @return WM_SUCCESS on success
+ * @return -WM_E_INVAL on invalid parameter.
+ * @return -WM_FAIL on error
+ */
+int os_recursive_mutex_create(os_mutex_t *mhandle, const char *name);
+
+/**
+ * Get recursive mutex
+ *
+ * This function recursively obtains, or 'get's, a mutex. The mutex must
+ * have previously been created using a call to
+ * os_recursive_mutex_create().
+ *
+ * @param[in] mhandle Pointer to mutex handle obtained from
+ * os_recursive_mutex_create().
+ * @param[in] wait The maximum amount of time, in OS ticks, the task should
+ * block waiting for the mutex to be acquired. The function os_msec_to_ticks()
+ * can be used to convert from real-time to OS ticks. The special values \ref
+ * OS_WAIT_FOREVER and \ref OS_NO_WAIT are provided to respectively wait
+ * for portMAX_DELAY (0xffffffff) or return immediately.
+ *
+ * @return WM_SUCCESS when recursive mutex is acquired
+ * @return -WM_FAIL on failure
+ */
+int os_recursive_mutex_get(os_mutex_t *mhandle, unsigned long wait);
+
+/**
+ * Put recursive mutex
+ *
+ * This function recursively releases, or 'give's, a mutex. The mutex must
+ * have previously been created using a call to
+ * os_recursive_mutex_create()
+ *
+ * @param[in] mhandle Pointer to the mutex handle
+ *
+ * @return WM_SUCCESS when mutex is released
+ * @return -WM_FAIL on failure
+ */
+int os_recursive_mutex_put(os_mutex_t *mhandle);
+
+/** Delete mutex
+ *
+ * This function deletes a mutex.
+ *
+ * @param[in] mhandle Pointer to the mutex handle
+ *
+ * @note A mutex should not be deleted if other tasks are blocked on it.
+ *
+ * @return WM_SUCCESS on success
+ */
+int os_mutex_delete(os_mutex_t *mhandle);
+
+/*** Event Notification ***/
+/**
+ * Wait for task notification
+ *
+ * This function waits for task notification from other task or interrupt
+ * context. This is similar to binary semaphore, but uses less RAM and much
+ * faster than semaphore mechanism
+ *
+ * @param[in] wait_time Timeout specified in no. of OS ticks
+ *
+ * @return WM_SUCCESS when notification is successful
+ * @return -WM_FAIL on failure or timeout
+ */
+int os_event_notify_get(unsigned long wait_time);
+
+/**
+ * Give task notification
+ *
+ * This function gives task notification so that waiting task can be
+ * unblocked. This is similar to binary semaphore, but uses less RAM and much
+ * faster than semaphore mechanism
+ *
+ * @param[in] task Task handle to be notified
+ *
+ * @return WM_SUCCESS when notification is successful
+ * @return -WM_FAIL on failure or timeout
+ */
+int os_event_notify_put(os_thread_t task);
+
+/*** Semaphore ***/
+
+typedef SemaphoreHandle_t os_semaphore_t;
+
+/** Create binary semaphore
+ *
+ * This function creates a binary semaphore. A binary semaphore can be acquired
+ * by only one entity at a given time.
+ *
+ * @param[out] mhandle Pointer to a semaphore handle
+ * @param[in] name Name of the semaphore
+ *
+ * @return WM_SUCCESS on success
+ * @return -WM_FAIL on error
+ */
+int os_semaphore_create(os_semaphore_t *mhandle, const char *name) WARN_UNUSED_RET;
+
+/** Create counting semaphore
+ *
+ * This function creates a counting semaphore. A counting semaphore can be
+ * acquired 'count' number of times at a given time.
+ *
+ * @param[out] mhandle Pointer to a semaphore handle
+ * @param[in] name Name of the semaphore
+ * @param[in] maxcount The maximum count value that can be reached. When
+ * the semaphore reaches this value it can no longer be 'put'
+ * @param[in] initcount The count value assigned to the semaphore when it
+ * is created. For e.g. If '0' is passed, then os_semaphore_get() will
+ * block until some other thread does an os_semaphore_put().
+ *
+ * @return WM_SUCCESS on success
+ * @return -WM_FAIL on error
+ */
+int os_semaphore_create_counting(os_semaphore_t *mhandle,
+ const char *name,
+ unsigned long maxcount,
+ unsigned long initcount);
+
+/** Acquire semaphore
+ *
+ * This function acquires a semaphore. At a given time, a binary semaphore can
+ * be acquired only once, while a counting semaphore can be acquired as many as
+ * 'count' number of times. Once this condition is reached, the other callers of
+ * this function will be blocked for the specified time duration.
+ *
+ * @param[in] mhandle Pointer to a semaphore handle
+ * @param[in] wait The maximum amount of time, in OS ticks, the task should
+ * block waiting for the semaphore to be acquired. The function
+ * os_msec_to_ticks() can be used to convert from real-time to OS ticks. The
+ * special values \ref OS_WAIT_FOREVER and \ref OS_NO_WAIT are provided to
+ * respectively wait infinitely or return immediately.
+ *
+ * @return WM_SUCCESS when semaphore is acquired
+ * @return -WM_E_INVAL if invalid parameters are passed
+ * @return -WM_FAIL on failure
+ */
+int os_semaphore_get(os_semaphore_t *mhandle, unsigned long wait);
+
+/** Release semaphore
+ *
+ * This function releases a semaphore previously acquired using
+ * os_semaphore_get().
+ *
+ * @note This function can also be called from interrupt-context.
+ *
+ * @param[in] mhandle Pointer to a semaphore handle
+ *
+ * @return WM_SUCCESS when semaphore is released
+ * @return -WM_E_INVAL if invalid parameters are passed
+ * @return -WM_FAIL on failure
+ */
+int os_semaphore_put(os_semaphore_t *mhandle);
+
+/** Get semaphore count
+ *
+ * This function returns the current value of a semaphore.
+ *
+ * @param[in] mhandle Pointer to a semaphore handle
+ *
+ * @return current value of the semaphore
+ */
+int os_semaphore_getcount(os_semaphore_t *mhandle);
+
+/** Delete a semaphore
+ *
+ * This function deletes the semaphore.
+ *
+ * @param [in] mhandle Pointer to a semaphore handle
+ *
+ * @note Do not delete a semaphore that has tasks blocked on it (tasks that are
+ * in the Blocked state waiting for the semaphore to become available)
+ *
+ * @return WM_SUCCESS on success
+ */
+int os_semaphore_delete(os_semaphore_t *mhandle);
+
+/*
+ * Reader Writer Locks
+ * This is a generic implementation of reader writer locks
+ * which is reader priority.
+ * Not only it provides mutual exclusion but also synchronization.
+ * Six APIs are exposed to user which include.
+ * -# Create a reader writer lock
+ * -# Delete a reader writer lock
+ * -# Reader lock
+ * -# Reader unlock
+ * -# Writer lock
+ * -# Writer unlock
+ * The locking operation is timeout based.
+ * Caller can give a timeout from 0 (no wait) to
+ * infinite (wait forever)
+ */
+
+typedef struct _rw_lock os_rw_lock_t;
+/** This is prototype of reader callback */
+typedef int (*cb_fn)(os_rw_lock_t *plock, unsigned int wait_time);
+
+struct _rw_lock
+{
+ /** Mutex for reader mutual exclusion */
+ os_mutex_t reader_mutex;
+ /** Lock which when held by reader,
+ * writer cannot enter critical section
+ */
+ os_semaphore_t rw_lock;
+ /** Function being called when first reader gets
+ * the lock
+ */
+ cb_fn reader_cb;
+ /** Counter to maintain number of readers
+ * in critical section
+ */
+ unsigned int reader_count;
+};
+
+int os_rwlock_create_with_cb(os_rw_lock_t *plock, const char *mutex_name, const char *lock_name, cb_fn r_fn);
+
+/** Create reader-writer lock
+ *
+ * This function creates a reader-writer lock.
+ *
+ * @param[in] lock Pointer to a reader-writer lock handle
+ * @param[in] mutex_name Name of the mutex
+ * @param[in] lock_name Name of the lock
+ *
+ * @return WM_SUCCESS on success
+ * @return -WM_FAIL on error
+ */
+int os_rwlock_create(os_rw_lock_t *plock, const char *mutex_name, const char *lock_name);
+
+/** Delete a reader-write lock
+ *
+ * This function deletes a reader-writer lock.
+ *
+ * @param[in] lock Pointer to the reader-writer lock handle
+ *
+ */
+void os_rwlock_delete(os_rw_lock_t *lock);
+
+/** Acquire writer lock
+ *
+ * This function acquires a writer lock. While readers can acquire the lock on a
+ * sharing basis, writers acquire the lock in an exclusive manner.
+ *
+ * @param[in] lock Pointer to the reader-writer lock handle
+ * @param[in] wait_time The maximum amount of time, in OS ticks, the task should
+ * block waiting for the lock to be acquired. The function os_msec_to_ticks()
+ * can be used to convert from real-time to OS ticks. The special values \ref
+ * OS_WAIT_FOREVER and \ref OS_NO_WAIT are provided to respectively wait
+ * infinitely or return immediately.
+ *
+ * @return WM_SUCCESS on success
+ * @return -WM_FAIL on error
+ *
+ */
+int os_rwlock_write_lock(os_rw_lock_t *lock, unsigned long wait_time);
+
+/** Release writer lock
+ *
+ * This function releases a writer lock previously acquired using
+ * os_rwlock_write_lock().
+ *
+ * @param[in] lock Pointer to the reader-writer lock handle
+ */
+void os_rwlock_write_unlock(os_rw_lock_t *lock);
+
+/** Acquire reader lock
+ *
+ * This function acquires a reader lock. While readers can acquire the lock on a
+ * sharing basis, writers acquire the lock in an exclusive manner.
+ *
+ * @param[in] lock pointer to the reader-writer lock handle
+ * @param[in] wait_time The maximum amount of time, in OS ticks, the task should
+ * block waiting for the lock to be acquired. The function os_msec_to_ticks()
+ * can be used to convert from real-time to OS ticks. The special values \ref
+ * OS_WAIT_FOREVER and \ref OS_NO_WAIT are provided to respectively wait
+ * infinitely or return immediately.
+ *
+ * @return WM_SUCCESS on success
+ * @return -WM_FAIL on error
+ *
+ */
+int os_rwlock_read_lock(os_rw_lock_t *lock, unsigned int wait_time);
+
+/** Release reader lock
+ *
+ * This function releases a reader lock previously acquired using
+ * os_rwlock_read_lock().
+ *
+ * @param[in] lock pointer to the reader-writer lock handle
+ *
+ * @return WM_SUCCESS if unlock operation successful.
+ * @return -WM_FAIL if unlock operation failed.
+ */
+int os_rwlock_read_unlock(os_rw_lock_t *lock);
+
+/*** Timer Management ***/
+
+typedef TimerHandle_t os_timer_t;
+typedef os_timer_t os_timer_arg_t;
+typedef TickType_t os_timer_tick;
+
+/** OS Timer reload Options
+ *
+ */
+typedef enum os_timer_reload
+{
+ /**
+ * Create one shot timer. Timer will be in the dormant state after
+ * it expires.
+ */
+ OS_TIMER_ONE_SHOT,
+ /**
+ * Create a periodic timer. Timer will auto-reload after it expires.
+ */
+ OS_TIMER_PERIODIC,
+} os_timer_reload_t;
+
+/**
+ * OS Timer Activate Options
+ */
+typedef enum os_timer_activation
+{
+ /** Start the timer on creation. */
+ OS_TIMER_AUTO_ACTIVATE,
+ /** Do not start the timer on creation. */
+ OS_TIMER_NO_ACTIVATE,
+} os_timer_activate_t;
+
+/** Create timer
+ *
+ * This function creates a timer.
+ *
+ * @param[out] timer_t Pointer to the timer handle
+ * @param[in] name Name of the timer
+ * @param[in] ticks Period in ticks
+ * @param[in] call_back Timer expire callback function
+ * @param[in] cb_arg Timer callback data
+ * @param[in] reload Reload Options, valid values include \ref OS_TIMER_ONE_SHOT
+ * or \ref OS_TIMER_PERIODIC.
+ * @param[in] activate Activate Options, valid values include \ref
+ * OS_TIMER_AUTO_ACTIVATE or \ref OS_TIMER_NO_ACTIVATE
+ *
+ * @return WM_SUCCESS if timer created successfully
+ * @return -WM_FAIL if timer creation fails
+ */
+int os_timer_create(os_timer_t *timer_t,
+ const char *name,
+ os_timer_tick ticks,
+ void (*call_back)(os_timer_arg_t),
+ void *cb_arg,
+ os_timer_reload_t reload,
+ os_timer_activate_t activate);
+
+/** Activate timer
+ *
+ * This function activates (or starts) a timer that was previously created using
+ * os_timer_create(). If the timer had already started and was already in the
+ * active state, then this call is equivalent to os_timer_reset().
+ *
+ * @param[in] timer_t Pointer to a timer handle
+ *
+ * @return WM_SUCCESS if timer activated successfully
+ * @return -WM_E_INVAL if invalid parameters are passed
+ * @return -WM_FAIL if timer fails to activate
+ */
+int os_timer_activate(os_timer_t *timer_t);
+
+/** Change timer period
+ *
+ * This function changes the period of a timer that was previously created using
+ * os_time_create(). This function changes the period of an active or dormant
+ * state timer.
+ *
+ * @param[in] timer_t Pointer to a timer handle
+ * @param[in] ntime Time in ticks after which the timer will expire
+ * @param[in] block_time This option is currently not supported
+ *
+ * @return WM_SUCCESS on success
+ * @return -WM_E_INVAL if invalid parameters are passed
+ * @return -WM_FAIL on failure
+ */
+int os_timer_change(os_timer_t *timer_t, os_timer_tick ntime, os_timer_tick block_time);
+
+/** Check the timer active state
+ *
+ * This function checks if the timer is in the active or dormant state. A timer
+ * is in the dormant state if (a) it has been created but not started, or (b) it
+ * has expired and a one-shot timer.
+ *
+ * @param [in] timer_t Pointer to a timer handle
+ *
+ * @return true if timer is active
+ * @return false if time is not active
+ */
+bool os_timer_is_running(os_timer_t *timer_t);
+
+/**
+ * Get the timer context
+ *
+ * This function helps to retrieve the timer context i.e. 'cb_arg' passed
+ * to os_timer_create().
+ *
+ * @param[in] timer_t Pointer to timer handle. The timer handle is received
+ * in the timer callback.
+ *
+ * @return The timer context i.e. the callback argument passed to
+ * os_timer_create().
+ */
+void *os_timer_get_context(os_timer_t *timer_t);
+
+/** Reset timer
+ *
+ * This function resets a timer that was previously created using using
+ * os_timer_create(). If the timer had already been started and was already in
+ * the active state, then this call will cause the timer to re-evaluate its
+ * expiry time so that it is relative to when os_timer_reset() was called. If
+ * the timer was in the dormant state then this call behaves in the same way as
+ * os_timer_activate().
+ *
+ * @param[in] timer_t Pointer to a timer handle
+ *
+ * @return WM_SUCCESS on success
+ * @return -WM_E_INVAL if invalid parameters are passed
+ * @return -WM_FAIL on failure
+ */
+int os_timer_reset(os_timer_t *timer_t);
+
+/** Deactivate timer
+ *
+ * This function deactivates (or stops) a timer that was previously started.
+ *
+ * @param [in] timer_t handle populated by os_timer_create()
+ *
+ * @return WM_SUCCESS on success
+ * @return -WM_E_INVAL if invalid parameters are passed
+ * @return -WM_FAIL on failure
+ */
+int os_timer_deactivate(os_timer_t *timer_t);
+
+/** Delete timer
+ *
+ * This function deletes a timer.
+ *
+ * @param[in] timer_t Pointer to a timer handle
+ *
+ * @return WM_SUCCESS on success
+ * @return -WM_E_INVAL if invalid parameters are passed
+ * @return -WM_FAIL on failure
+ */
+int os_timer_delete(os_timer_t *timer_t);
+
+/* OS Memory allocation API's */
+
+/** Allocate memory
+ *
+ * This function allocates memory dynamically.
+ *
+ * @param[in] size Size of the memory to be allocated
+ *
+ * @return Pointer to the allocated memory
+ * @return NULL if allocation fails
+ */
+void *os_mem_alloc(size_t size);
+
+/** Allocate memory and zero it
+ *
+ * This function allocates memory dynamically and sets the memory contents to
+ * zero.
+ *
+ * @param[in] size Size of the memory to be allocated
+ *
+ * @return Pointer to the allocated memory
+ * @return NULL if allocation fails
+ */
+void *os_mem_calloc(size_t size);
+
+/** Free Memory
+ *
+ * This function frees dynamically allocated memory using any of the dynamic
+ * allocation primitives.
+ *
+ * @param[in] ptr Pointer to the memory to be freed
+ */
+void os_mem_free(void *ptr);
+
+#ifdef CONFIG_HEAP_STAT
+/** This function dumps complete statistics
+ * of the heap memory.
+ */
+void os_dump_mem_stats(void);
+
+#endif
+
+typedef unsigned long event_group_handle_t;
+
+typedef enum flag_rtrv_option_t_
+{
+ EF_AND,
+ EF_AND_CLEAR,
+ EF_OR,
+ EF_OR_CLEAR
+} flag_rtrv_option_t;
+
+#define EF_NO_WAIT 0
+#define EF_WAIT_FOREVER 0xFFFFFFFFUL
+#define EF_NO_EVENTS 0x7
+
+int os_event_flags_create(event_group_handle_t *hnd);
+int os_event_flags_get(event_group_handle_t hnd,
+ unsigned requested_flags,
+ flag_rtrv_option_t option,
+ unsigned *actual_flags_ptr,
+ unsigned wait_option);
+int os_event_flags_set(event_group_handle_t hnd, unsigned flags_to_set, flag_rtrv_option_t option);
+
+/**** OS init call **********/
+WEAK int os_init(void);
+
+void _os_delay(int cnt);
+
+/**
+ * \def os_get_runtime_stats(__buff__)
+ *
+ * Get ASCII formatted run time statistics
+ *
+ * Please ensure that your buffer is big enough for the formatted data to
+ * fit. Failing to do this may cause memory data corruption.
+ */
+#define os_get_runtime_stats(__buff__) vTaskGetRunTimeStats(__buff__)
+
+/**
+ * \def os_get_task_list(__buff__)
+ *
+ * Get ASCII formatted task list
+ *
+ * Please ensure that your buffer is big enough for the formatted data to
+ * fit. Failing to do this may cause memory data corruption.
+ */
+
+#define os_get_task_list(__buff__) vTaskList(__buff__)
+
+/** Disables all interrupts at NVIC level */
+void os_disable_all_interrupts(void);
+
+/** Enable all interrupts at NVIC lebel */
+void os_enable_all_interrupts(void);
+
+/* Init value for rand generator seed */
+extern uint32_t wm_rand_seed;
+
+/** This function initialize the seed for rand generator
+ * @return a uint32_t random numer
+ */
+static inline void os_srand(uint32_t seed)
+{
+ wm_rand_seed = seed;
+}
+
+/** This function generate a random number
+ * @return a uint32_t random numer
+ */
+static inline uint32_t os_rand()
+{
+ if (wm_rand_seed == -1)
+ os_srand(os_ticks_get());
+ wm_rand_seed = (uint32_t)((((uint64_t)wm_rand_seed * 279470273UL) % 4294967291UL) & 0xFFFFFFFFUL);
+ return wm_rand_seed;
+}
+
+/** This function generate a random number in a range
+ * @param [in] low range low
+ * @param [in] high range high
+ * @return a uint32_t random numer
+ */
+static inline uint32_t os_rand_range(uint32_t low, uint32_t high)
+{
+ uint32_t tmp;
+ if (low == high)
+ return low;
+ if (low > high)
+ {
+ tmp = low;
+ low = high;
+ high = tmp;
+ }
+ return (low + os_rand() % (high - low));
+}
+
+void os_dump_threadinfo(char *name);
+
+#endif /* ! _WM_OS_H_ */
diff --git a/third-party/fsl_wifi/incl/port/sdio/sdmmc_config.h b/third-party/fsl_wifi/incl/port/sdio/sdmmc_config.h
new file mode 100644
index 0000000000000000000000000000000000000000..2471a5d42138b0840d0b0cc28d19063d19f416fa
--- /dev/null
+++ b/third-party/fsl_wifi/incl/port/sdio/sdmmc_config.h
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2020-2022 NXP
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef _SDMMC_CONFIG_H_
+#define _SDMMC_CONFIG_H_
+
+#include "fsl_common.h"
+
+#ifdef CONFIG_FSL_SDMMC_SD_ENABLED
+#include "fsl_sd.h"
+#endif
+#ifdef CONFIG_FSL_SDMMC_MMC_ENABLED
+#include "fsl_mmc.h"
+#endif
+#ifdef CONFIG_FSL_SDMMC_SDIO_ENABLED
+#include "fsl_sdio.h"
+#endif
+#include "fsl_sdmmc_host.h"
+#include "fsl_sdmmc_common.h"
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+/* @brief host basic configuration */
+#define BOARD_SDMMC_SD_HOST_BASEADDR USDHC0
+#define BOARD_SDMMC_SD_HOST_IRQ USDHC0_IRQn
+
+#define BOARD_SDMMC_SDIO_HOST_BASEADDR USDHC0
+#define BOARD_SDMMC_SDIO_HOST_IRQ USDHC0_IRQn
+
+/* @brief card detect type
+ *
+ * Note: Please pay attention, DAT3 card detection cannot works during the card access,
+ * since the DAT3 will be used for data transfer, thus the functionality of card detect will be disabled. Using card
+ * detect pin for card detection is recommended.
+ */
+#define BOARD_SDMMC_SD_CD_TYPE kSD_DetectCardByHostCD
+#define BOARD_SDMMC_SD_CARD_DETECT_DEBOUNCE_DELAY_MS (100U)
+/*! @brief SD power reset */
+
+#define BOARD_SDMMC_SD_POWER_RESET_GPIO_CLOCK_NAME kCLOCK_HsGpio2
+#define BOARD_SDMMC_SD_POWER_RESET_GPIO_RESET_SOURCE kHSGPIO2_RST_SHIFT_RSTn
+#define BOARD_SDMMC_SD_POWER_RESET_GPIO_BASE GPIO
+#define BOARD_SDMMC_SD_POWER_RESET_GPIO_PORT 2
+#define BOARD_SDMMC_SD_POWER_RESET_GPIO_PIN 10U
+
+/*! @brief SD IO voltage */
+#define BOARD_SDMMC_SD_IO_VOLTAGE_CONTROL_GPIO_BASE GPIO
+#define BOARD_SDMMC_SD_IO_VOLTAGE_CONTROL_GPIO_PORT 4U
+#define BOARD_SDMMC_SD_IO_VOLTAGE_CONTROL_GPIO_PIN 0U
+
+#define BOARD_SDMMC_SD_IO_VOLTAGE_CONTROL_TYPE kSD_IOVoltageCtrlByGpio
+
+/* @brief mmc configuration */
+#define BOARD_SDMMC_MMC_VCC_SUPPLY kMMC_VoltageWindows270to360
+#define BOARD_SDMMC_MMC_VCCQ_SUPPLY kMMC_VoltageWindow170to195
+
+#define BOARD_SDMMC_DATA_BUFFER_ALIGN_SIZE (512U)
+
+/*!@ brief host interrupt priority*/
+#define BOARD_SDMMC_SD_HOST_IRQ_PRIORITY (5U)
+#define BOARD_SDMMC_MMC_HOST_IRQ_PRIORITY (5U)
+#define BOARD_SDMMC_SDIO_HOST_IRQ_PRIORITY (5U)
+/*!@brief dma descriptor buffer size */
+#define BOARD_SDMMC_HOST_DMA_DESCRIPTOR_BUFFER_SIZE (32U)
+
+#if defined(__cplusplus)
+extern "C" {
+#endif /* __cplusplus */
+
+/*******************************************************************************
+ * API
+ ******************************************************************************/
+/*!
+ * @brief BOARD SDIO configurations.
+ * @param card card descriptor
+ * @param cd card detect callback
+ * @param cardInt card interrupt
+ */
+#ifdef CONFIG_FSL_SDMMC_SDIO_ENABLED
+void BOARD_SDIO_Config(void *card, sd_cd_t cd, uint32_t hostIRQPriority, sdio_int_t cardInt);
+#endif
+
+
+#if defined(__cplusplus)
+}
+#endif /* __cplusplus */
+
+#endif /* _BOARD_H_ */
diff --git a/third-party/fsl_wifi/incl/port/sdio/wifi_bt_config.h b/third-party/fsl_wifi/incl/port/sdio/wifi_bt_config.h
new file mode 100644
index 0000000000000000000000000000000000000000..de50dca4412f79745ae03d5c7c0d93dd2a68e91f
--- /dev/null
+++ b/third-party/fsl_wifi/incl/port/sdio/wifi_bt_config.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2021 NXP
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef _WIFI_BT_CONFIG_H_
+#define _WIFI_BT_CONFIG_H_
+
+#include "sdmmc_config.h"
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+#if defined(__cplusplus)
+extern "C" {
+#endif /* __cplusplus */
+
+/*******************************************************************************
+ * API
+ ******************************************************************************/
+/*!
+ * @brief BOARD SDIO configurations.
+ * @param card card descriptor
+ * @param cardInt card interrupt
+ */
+void BOARD_WIFI_BT_Config(void *host, sdio_int_t cardInt);
+
+/*!
+ * @brief enable wifi/bt module.
+ * @param enable true enable module, false disable module.
+ */
+void BOARD_WIFI_BT_Enable(bool enable);
+
+#if defined(__cplusplus)
+}
+#endif /* __cplusplus */
+
+#endif /* _WIFI_BT_CONFIG_H_ */
diff --git a/third-party/fsl_wifi/incl/port/wifi_config.h b/third-party/fsl_wifi/incl/port/wifi_config.h
new file mode 100644
index 0000000000000000000000000000000000000000..d0b9b531905cf1c23ef62d5d1541718fc3ea4d6b
--- /dev/null
+++ b/third-party/fsl_wifi/incl/port/wifi_config.h
@@ -0,0 +1,148 @@
+/*
+ * Copyright 2020-2022 NXP
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef _WIFI_CONFIG_H_
+#define _WIFI_CONFIG_H_
+
+#define CONFIG_WIFI_MAX_PRIO (configMAX_PRIORITIES - 1)
+
+#ifndef RW610
+#define CONFIG_MAX_AP_ENTRIES 10
+#else
+#define CONFIG_MAX_AP_ENTRIES 30
+#endif
+
+#if defined(SD8978) || defined(SD8987) || defined(RW610)
+#define CONFIG_5GHz_SUPPORT 1
+#endif
+
+#ifndef RW610
+#define CONFIG_SDIO_MULTI_PORT_RX_AGGR 1
+#endif
+
+#if defined(SD8987) || defined(RW610)
+#undef CONFIG_WMM
+#define CONFIG_11AC
+#endif
+
+#if defined(RW610)
+#define CONFIG_RW610_A1
+#define PRINTF_FLOAT_ENABLE 1
+#define CONFIG_11AX
+#undef CONFIG_IMU_GDMA
+/* WMM options */
+#define CONFIG_WMM
+#define CONFIG_WMM_ENH
+#undef CONFIG_WMM_CERT
+#undef AMSDU_IN_AMPDU
+/* OWE mode */
+#undef CONFIG_OWE
+/* WLAN SCAN OPT */
+#define CONFIG_SCAN_WITH_RSSIFILTER
+/* WLAN white/black list opt */
+#define CONFIG_UAP_STA_MAC_ADDR_FILTER
+#define CONFIG_COMBO_SCAN
+#define CONFIG_WIFI_DTIM_PERIOD
+#define CONFIG_UART_INTERRUPT
+#define CONFIG_WIFI_CAPA
+#define CONFIG_WIFI_RTS_THRESHOLD
+#define CONFIG_WIFI_FRAG_THRESHOLD
+#define CONFIG_WIFI_11D_ENABLE
+#define CONFIG_WIFI_HIDDEN_SSID
+#define CONFIG_WIFI_MAX_CLIENTS_CNT
+#define CONFIG_WMM_UAPSD
+#define CONFIG_WIFI_GET_LOG
+#define CONFIG_WIFI_TX_PER_TRACK
+#define CONFIG_ROAMING
+#define CONFIG_HOST_SLEEP
+#define CONFIG_POWER_MANAGER
+#define CONFIG_CSI
+#define CONFIG_WIFI_RESET
+#define CONFIG_NET_MONITOR
+#define CONFIG_WIFI_MEM_ACCESS
+#define CONFIG_WIFI_REG_ACCESS
+#define CONFIG_ECSA
+#define CONFIG_WIFI_EU_CRYPTO
+#define CONFIG_EXT_SCAN_SUPPORT
+#define CONFIG_EVENT_MEM_ACCESS
+#define CONFIG_11K
+#define CONFIG_11V
+#define CONFIG_COMPRESS_TX_PWTBL
+#define CONFIG_RX_ABORT_CFG
+#define CONFIG_RX_ABORT_CFG_EXT
+#define CONFIG_CCK_DESENSE_CFG
+#define CONFIG_11AX_TWT
+#define CONFIG_IPS
+#define CONFIG_MBO
+#define CONFIG_SUBSCRIBE_EVENT_SUPPORT
+#define CONFIG_WIFI_FORCE_RTS
+#define CONFIG_TX_AMPDU_PROT_MODE
+#define CONFIG_EU_VALIDATION
+#define CONFIG_TSP
+#define CONFIG_TX_RX_HISTOGRAM
+#define CONFIG_CLOUD_KEEP_ALIVE
+#define MULTI_BSSID_SUPPORT
+#define CONFIG_TURBO_MODE
+#endif
+
+//#define CONFIG_IPV6 0
+#define CONFIG_MAX_IPV6_ADDRESSES 3
+
+#if defined(SD8978) || defined(SD8987) || defined(SD8801)
+#define CONFIG_WIFI_CAPA 1
+#define CONFIG_ROAMING 1
+#define CONFIG_CLOUD_KEEP_ALIVE 1
+#define CONFIG_TURBO_MODE 1
+
+#if !defined(SD8801)
+#define CONFIG_EXT_SCAN_SUPPORT 1
+#define CONFIG_WIFI_EU_CRYPTO 1
+#define CONFIG_11R 1
+#endif
+
+#undef CONFIG_HOST_SLEEP
+
+#undef CONFIG_FIPS
+
+#define CONFIG_11K 1
+#define CONFIG_11V 1
+
+#endif
+
+/* Logs */
+#define CONFIG_ENABLE_ERROR_LOGS 1
+#define CONFIG_ENABLE_WARNING_LOGS 1
+
+/* WLCMGR debug */
+#undef CONFIG_WLCMGR_DEBUG
+
+/*
+ * Wifi extra debug options
+ */
+#undef CONFIG_WIFI_EXTRA_DEBUG
+#undef CONFIG_WIFI_EVENTS_DEBUG
+#undef CONFIG_WIFI_CMD_RESP_DEBUG
+#undef CONFIG_WIFI_PKT_DEBUG
+#undef CONFIG_WIFI_SCAN_DEBUG
+#undef CONFIG_WIFI_IO_INFO_DUMP
+#undef CONFIG_WIFI_IO_DEBUG
+#undef CONFIG_WIFI_IO_DUMP
+#undef CONFIG_WIFI_MEM_DEBUG
+#undef CONFIG_WIFI_AMPDU_DEBUG
+#undef CONFIG_WIFI_TIMER_DEBUG
+#undef CONFIG_WIFI_SDIO_DEBUG
+#undef CONFIG_WIFI_FW_DEBUG
+#undef CONFIG_WIFI_UAP_DEBUG
+#undef CONFIG_WPS_DEBUG
+
+/*
+ * Heap debug options
+ */
+#undef CONFIG_HEAP_DEBUG
+#undef CONFIG_HEAP_STAT
+
+#endif /* _WIFI_CONFIG_H_ */
diff --git a/third-party/fsl_wifi/incl/port/wlan_txpwrlimit_cfg_WW.h b/third-party/fsl_wifi/incl/port/wlan_txpwrlimit_cfg_WW.h
new file mode 100644
index 0000000000000000000000000000000000000000..b44acd64ec1169417b81dbdbac55829b5391a2a2
--- /dev/null
+++ b/third-party/fsl_wifi/incl/port/wlan_txpwrlimit_cfg_WW.h
@@ -0,0 +1,2379 @@
+/** @file wlan_txpwrlimit_cfg_WW.h
+ *
+ * @brief This file provides WLAN World Wide Safe Mode Tx Power Limits.
+ *
+ * Copyright 2008-2021 NXP
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * 'Software'), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject
+ * to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial
+ * portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL NXP AND/OR ITS SUPPLIERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifndef _WLAN_TXPWRLIMIT_CFG_WW_H_
+#define _WLAN_TXPWRLIMIT_CFG_WW_H_
+#include
+
+static wlan_chanlist_t chanlist_2g_cfg = {14,
+ {[0] =
+ {
+ .chan_num = 1,
+ .chan_freq = 2412,
+ .passive_scan_or_radar_detect = false,
+ },
+ [1] =
+ {
+ .chan_num = 2,
+ .chan_freq = 2417,
+ .passive_scan_or_radar_detect = false,
+ },
+ [2] =
+ {
+ .chan_num = 3,
+ .chan_freq = 2422,
+ .passive_scan_or_radar_detect = false,
+ },
+ [3] =
+ {
+ .chan_num = 4,
+ .chan_freq = 2427,
+ .passive_scan_or_radar_detect = false,
+ },
+ [4] =
+ {
+ .chan_num = 5,
+ .chan_freq = 2432,
+ .passive_scan_or_radar_detect = false,
+ },
+ [5] =
+ {
+ .chan_num = 6,
+ .chan_freq = 2437,
+ .passive_scan_or_radar_detect = false,
+ },
+ [6] =
+ {
+ .chan_num = 7,
+ .chan_freq = 2442,
+ .passive_scan_or_radar_detect = false,
+ },
+ [7] =
+ {
+ .chan_num = 8,
+ .chan_freq = 2447,
+ .passive_scan_or_radar_detect = false,
+ },
+ [8] =
+ {
+ .chan_num = 9,
+ .chan_freq = 2452,
+ .passive_scan_or_radar_detect = false,
+ },
+ [9] =
+ {
+ .chan_num = 10,
+ .chan_freq = 2457,
+ .passive_scan_or_radar_detect = false,
+ },
+ [10] =
+ {
+ .chan_num = 11,
+ .chan_freq = 2462,
+ .passive_scan_or_radar_detect = false,
+ },
+ [11] =
+ {
+ .chan_num = 12,
+ .chan_freq = 2467,
+ .passive_scan_or_radar_detect = true,
+ },
+ [12] =
+ {
+ .chan_num = 13,
+ .chan_freq = 2472,
+ .passive_scan_or_radar_detect = true,
+ },
+ [13] =
+ {
+ .chan_num = 14,
+ .chan_freq = 2484,
+ .passive_scan_or_radar_detect = true,
+ },
+ [14] = {0},
+ [15] = {0},
+ [16] = {0},
+ [17] = {0},
+ [18] = {0},
+ [19] = {0},
+ [20] = {0},
+ [21] = {0},
+ [22] = {0},
+ [23] = {0},
+ [24] = {0},
+ [25] = {0},
+ [26] = {0},
+ [27] = {0},
+ [28] = {0},
+ [29] = {0},
+ [30] = {0},
+ [31] = {0},
+ [32] = {0},
+ [33] = {0},
+ [34] = {0},
+ [35] = {0},
+ [36] = {0},
+ [37] = {0},
+ [38] = {0},
+ [39] = {0},
+ [40] = {0},
+ [41] = {0},
+ [42] = {0},
+ [43] = {0},
+ [44] = {0},
+ [45] = {0},
+ [46] = {0},
+ [47] = {0},
+ [48] = {0},
+ [49] = {0},
+ [50] = {0},
+ [51] = {0},
+ [52] = {0},
+ [53] = {0}}};
+
+#ifdef CONFIG_5GHz_SUPPORT
+static wlan_chanlist_t chanlist_5g_cfg = {25,
+ {[0] =
+ {
+ .chan_num = 36,
+ .chan_freq = 5180,
+ .passive_scan_or_radar_detect = false,
+ },
+ [1] =
+ {
+ .chan_num = 40,
+ .chan_freq = 5200,
+ .passive_scan_or_radar_detect = false,
+ },
+ [2] =
+ {
+ .chan_num = 44,
+ .chan_freq = 5220,
+ .passive_scan_or_radar_detect = false,
+ },
+ [3] =
+ {
+ .chan_num = 48,
+ .chan_freq = 5240,
+ .passive_scan_or_radar_detect = false,
+ },
+ [4] =
+ {
+ .chan_num = 52,
+ .chan_freq = 5260,
+ .passive_scan_or_radar_detect = true,
+ },
+ [5] =
+ {
+ .chan_num = 56,
+ .chan_freq = 5280,
+ .passive_scan_or_radar_detect = true,
+ },
+ [6] =
+ {
+ .chan_num = 60,
+ .chan_freq = 5300,
+ .passive_scan_or_radar_detect = true,
+ },
+ [7] =
+ {
+ .chan_num = 64,
+ .chan_freq = 5320,
+ .passive_scan_or_radar_detect = true,
+ },
+ [8] =
+ {
+ .chan_num = 100,
+ .chan_freq = 5500,
+ .passive_scan_or_radar_detect = true,
+ },
+ [9] =
+ {
+ .chan_num = 104,
+ .chan_freq = 5520,
+ .passive_scan_or_radar_detect = true,
+ },
+ [10] =
+ {
+ .chan_num = 108,
+ .chan_freq = 5540,
+ .passive_scan_or_radar_detect = true,
+ },
+ [11] =
+ {
+ .chan_num = 112,
+ .chan_freq = 5560,
+ .passive_scan_or_radar_detect = true,
+ },
+ [12] =
+ {
+ .chan_num = 116,
+ .chan_freq = 5580,
+ .passive_scan_or_radar_detect = true,
+ },
+ [13] =
+ {
+ .chan_num = 120,
+ .chan_freq = 5600,
+ .passive_scan_or_radar_detect = true,
+ },
+ [14] =
+ {
+ .chan_num = 124,
+ .chan_freq = 5620,
+ .passive_scan_or_radar_detect = true,
+ },
+ [15] =
+ {
+ .chan_num = 128,
+ .chan_freq = 5640,
+ .passive_scan_or_radar_detect = true,
+ },
+ [16] =
+ {
+ .chan_num = 132,
+ .chan_freq = 5660,
+ .passive_scan_or_radar_detect = true,
+ },
+ [17] =
+ {
+ .chan_num = 136,
+ .chan_freq = 5680,
+ .passive_scan_or_radar_detect = true,
+ },
+ [18] =
+ {
+ .chan_num = 140,
+ .chan_freq = 5700,
+ .passive_scan_or_radar_detect = true,
+ },
+ [19] =
+ {
+ .chan_num = 144,
+ .chan_freq = 5720,
+ .passive_scan_or_radar_detect = true,
+ },
+ [20] =
+ {
+ .chan_num = 149,
+ .chan_freq = 5745,
+ .passive_scan_or_radar_detect = false,
+ },
+ [21] =
+ {
+ .chan_num = 153,
+ .chan_freq = 5765,
+ .passive_scan_or_radar_detect = false,
+ },
+ [22] =
+ {
+ .chan_num = 157,
+ .chan_freq = 5785,
+ .passive_scan_or_radar_detect = false,
+ },
+ [23] =
+ {
+ .chan_num = 161,
+ .chan_freq = 5805,
+ .passive_scan_or_radar_detect = false,
+ },
+ [24] =
+ {
+ .chan_num = 165,
+ .chan_freq = 5825,
+ .passive_scan_or_radar_detect = false,
+ },
+ [25] = {0},
+ [26] = {0},
+ [27] = {0},
+ [28] = {0},
+ [29] = {0},
+ [30] = {0},
+ [31] = {0},
+ [32] = {0},
+ [33] = {0},
+ [34] = {0},
+ [35] = {0},
+ [36] = {0},
+ [37] = {0},
+ [38] = {0},
+ [39] = {0},
+ [40] = {0},
+ [41] = {0},
+ [42] = {0},
+ [43] = {0},
+ [44] = {0},
+ [45] = {0},
+ [46] = {0},
+ [47] = {0},
+ [48] = {0},
+ [49] = {0},
+ [50] = {0},
+ [51] = {0},
+ [52] = {0},
+ [53] = {0}}};
+#endif
+
+#ifndef CONFIG_11AC
+static wlan_txpwrlimit_t tx_pwrlimit_2g_cfg =
+ {
+ (wifi_SubBand_t)0x00,
+ 14,
+ {[0] =
+ {
+ .num_mod_grps = 10,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 1,
+ },
+ .txpwrlimit_entry = {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}},
+ },
+ [1] =
+ {
+ .num_mod_grps = 10,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 2,
+ },
+ .txpwrlimit_entry = {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}},
+ },
+ [2] =
+ {
+ .num_mod_grps = 10,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 3,
+ },
+ .txpwrlimit_entry = {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}},
+ },
+ [3] =
+ {
+ .num_mod_grps = 10,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 4,
+ },
+ .txpwrlimit_entry = {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}},
+ },
+ [4] =
+ {
+ .num_mod_grps = 10,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 5,
+ },
+ .txpwrlimit_entry = {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}},
+ },
+ [5] =
+ {
+ .num_mod_grps = 10,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 6,
+ },
+ .txpwrlimit_entry = {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}},
+ },
+ [6] =
+ {
+ .num_mod_grps = 10,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 7,
+ },
+ .txpwrlimit_entry = {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}},
+ },
+ [7] =
+ {
+ .num_mod_grps = 10,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 8,
+ },
+ .txpwrlimit_entry = {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}},
+ },
+ [8] =
+ {
+ .num_mod_grps = 10,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 9,
+ },
+ .txpwrlimit_entry = {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}},
+ },
+ [9] =
+ {
+ .num_mod_grps = 10,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 10,
+ },
+ .txpwrlimit_entry = {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}},
+ },
+ [10] =
+ {
+ .num_mod_grps = 10,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 11,
+ },
+ .txpwrlimit_entry = {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}},
+ },
+ [11] =
+ {
+ .num_mod_grps = 10,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 12,
+ },
+ .txpwrlimit_entry = {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}},
+ },
+ [12] =
+ {
+ .num_mod_grps = 10,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 13,
+ },
+ .txpwrlimit_entry = {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}},
+ },
+ [13] =
+ {
+ .num_mod_grps = 10,
+ .chan_desc =
+ {
+ .start_freq = 2414,
+ .chan_width = 20,
+ .chan_num = 14,
+ },
+ .txpwrlimit_entry = {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}},
+ },
+ [14] = {0},
+ [15] = {0},
+ [16] = {0},
+ [17] = {0},
+ [18] = {0},
+ [19] = {0},
+ [20] = {0},
+ [21] = {0},
+ [22] = {0},
+ [23] = {0},
+ [24] = {0},
+ [25] = {0},
+ [26] = {0},
+ [27] = {0},
+ [28] = {0},
+ [29] = {0},
+ [30] = {0},
+ [31] = {0},
+ [32] = {0},
+ [33] = {0},
+ [34] = {0},
+ [35] = {0},
+ [36] = {0},
+ [37] = {0},
+ [38] = {0},
+ [39] = {0}}};
+
+#ifdef CONFIG_5GHz_SUPPORT
+static wlan_txpwrlimit_t tx_pwrlimit_5g_cfg =
+ {
+ (wifi_SubBand_t)0x00,
+ 39,
+ {[0] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 36,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [1] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 40,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [2] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 44,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [3] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 48,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [4] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 52,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [5] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 56,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [6] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 60,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [7] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 64,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [8] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 100,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [9] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 104,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [10] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 108,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [11] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 112,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [12] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 116,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [13] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 120,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [14] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 124,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [15] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 128,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [16] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 132,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [17] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 136,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [18] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 140,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [19] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 144,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [20] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 149,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [21] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 153,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [22] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 157,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [23] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 161,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [24] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 165,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [25] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 183,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [26] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 184,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [27] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 185,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [28] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 187,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [29] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 188,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [30] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 189,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [31] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 192,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [32] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 196,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [33] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 7,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [34] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 8,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [35] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 11,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [36] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 12,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [37] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 16,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [38] =
+ {
+ .num_mod_grps = 9,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 34,
+ },
+ .txpwrlimit_entry = {{1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}, {6, 8}, {7, 8}, {8, 8}, {9, 8}, {0, 0}},
+ },
+ [39] = {0}}};
+#endif
+#else
+static wlan_txpwrlimit_t tx_pwrlimit_2g_cfg = {(wifi_SubBand_t)0x00,
+ 14,
+ {[0] =
+ {
+ .num_mod_grps = 12,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 1,
+ },
+ .txpwrlimit_entry = {{0, 8},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0}},
+ },
+ [1] =
+ {
+ .num_mod_grps = 12,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 2,
+ },
+ .txpwrlimit_entry = {{0, 8},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0}},
+ },
+ [2] =
+ {
+ .num_mod_grps = 12,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 3,
+ },
+ .txpwrlimit_entry = {{0, 8},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0}},
+ },
+ [3] =
+ {
+ .num_mod_grps = 12,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 4,
+ },
+ .txpwrlimit_entry =
+ {
+ {0, 8},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0}},
+ },
+ [4] =
+ {
+ .num_mod_grps = 12,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 5,
+ },
+ .txpwrlimit_entry = {{0, 8},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0}},
+ },
+ [5] =
+ {
+ .num_mod_grps = 12,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 6,
+ },
+ .txpwrlimit_entry = {{0, 8},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0}},
+ },
+ [6] =
+ {
+ .num_mod_grps = 12,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 7,
+ },
+ .txpwrlimit_entry = {{0, 8},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0}},
+ },
+ [7] =
+ {
+ .num_mod_grps = 12,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 8,
+ },
+ .txpwrlimit_entry = {{0, 8},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0}},
+ },
+ [8] =
+ {
+ .num_mod_grps = 12,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 9,
+ },
+ .txpwrlimit_entry = {{0, 8},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0}},
+ },
+ [9] =
+ {
+ .num_mod_grps = 12,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 10,
+ },
+ .txpwrlimit_entry = {{0, 8},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0}},
+ },
+ [10] =
+ {
+ .num_mod_grps = 12,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 11,
+ },
+ .txpwrlimit_entry = {{0, 8},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0}},
+ },
+ [11] =
+ {
+ .num_mod_grps = 12,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 12,
+ },
+ .txpwrlimit_entry = {{0, 8},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0}},
+ },
+ [12] =
+ {
+ .num_mod_grps = 12,
+ .chan_desc =
+ {
+ .start_freq = 2407,
+ .chan_width = 20,
+ .chan_num = 13,
+ },
+ .txpwrlimit_entry = {{0, 8},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0}},
+ },
+ [13] =
+ {
+ .num_mod_grps = 12,
+ .chan_desc =
+ {
+ .start_freq = 2414,
+ .chan_width = 20,
+ .chan_num = 14,
+ },
+ .txpwrlimit_entry = {{0, 8},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {0, 0},
+ {0, 0},
+ {0, 0},
+ {0, 0}},
+ },
+ [14] = {0},
+ [15] = {0},
+ [16] = {0},
+ [17] = {0},
+ [18] = {0},
+ [19] = {0},
+ [20] = {0},
+ [21] = {0},
+ [22] = {0},
+ [23] = {0},
+ [24] = {0},
+ [25] = {0},
+ [26] = {0},
+ [27] = {0},
+ [28] = {0},
+ [29] = {0},
+ [30] = {0},
+ [31] = {0},
+ [32] = {0},
+ [33] = {0},
+ [34] = {0},
+ [35] = {0},
+ [36] = {0},
+ [37] = {0},
+ [38] = {0},
+ [39] = {0}}};
+
+#ifdef CONFIG_5GHz_SUPPORT
+static wlan_txpwrlimit_t tx_pwrlimit_5g_cfg = {(wifi_SubBand_t)0x00,
+ 39,
+ {[0] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 36,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [1] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 40,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [2] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 44,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [3] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 48,
+ },
+ .txpwrlimit_entry =
+ {
+ {0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [4] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 52,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [5] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 56,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [6] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 60,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [7] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 64,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [8] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 100,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [9] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 104,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [10] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 108,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [11] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 112,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [12] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 116,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [13] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 120,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [14] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 124,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [15] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 128,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [16] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 132,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [17] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 136,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [18] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 140,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [19] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 144,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [20] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 149,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [21] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 153,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [22] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 157,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [23] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 161,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [24] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 165,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [25] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 183,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [26] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 184,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [27] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 185,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [28] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc = {.start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 187},
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [29] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 188,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [30] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 189,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [31] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 192,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [32] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 196,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [33] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 7,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [34] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 8,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [35] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 11,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [36] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 12,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [37] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 16,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [38] =
+ {
+ .num_mod_grps = 16,
+ .chan_desc =
+ {
+ .start_freq = 5000,
+ .chan_width = 20,
+ .chan_num = 34,
+ },
+ .txpwrlimit_entry = {{0, 0},
+ {1, 8},
+ {2, 8},
+ {3, 8},
+ {4, 8},
+ {5, 8},
+ {6, 8},
+ {7, 8},
+ {8, 8},
+ {9, 8},
+ {10, 8},
+ {11, 8},
+ {12, 8},
+ {13, 8},
+ {14, 8},
+ {15, 8}},
+ },
+ [39] = {0}}};
+#endif /* CONFIG_5GHz_SUPPORT */
+#endif /* CONFIG_11AC */
+#endif /* _WLAN_TXPWRLIMIT_CFG_WW_H_ */
diff --git a/third-party/fsl_wifi/incl/wifi_cal_data_ext.h b/third-party/fsl_wifi/incl/wifi_cal_data_ext.h
new file mode 100644
index 0000000000000000000000000000000000000000..869ba8d0b884836e9b3f8fa77fdc9cf607d9006c
--- /dev/null
+++ b/third-party/fsl_wifi/incl/wifi_cal_data_ext.h
@@ -0,0 +1,39 @@
+/** @file wifi_cal_data.h
+ *
+ * @brief This file contains the cal data
+ */
+/*
+ * Copyright 2021 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+#ifndef _WIFI_CAL_DATA_H_
+#define _WIFI_CAL_DATA_H_
+
+#if defined(SD8978)
+/* Following cal data is specific to IW416 QFN A1 chips */
+uint8_t cal_data_qfn_1A[] = {
+ 0x01, 0x00, 0x0E, 0x00, 0x64, 0x01, 0x00, 0x20, 0x77, 0x0E, 0x00, 0x00, 0x00, 0x20, 0x01, 0x01, 0x20, 0x00, 0xA0,
+ 0x02, 0xBE, 0x19, 0x00, 0x3F, 0x00, 0x10, 0x00, 0x02, 0x58, 0x81, 0x02, 0x00, 0x00, 0x3E, 0x01, 0x00, 0x00, 0x36,
+ 0x00, 0x3C, 0x22, 0x4B, 0x00, 0x00, 0x00, 0x5C, 0xFF, 0xFF, 0x06, 0x00, 0x05, 0x11, 0x62, 0x03, 0xFF, 0xFF, 0x6B,
+ 0x6B, 0x05, 0x17, 0x5F, 0x43, 0xFF, 0xFF, 0x76, 0x76, 0x05, 0x14, 0x57, 0x47, 0xFF, 0xFF, 0x54, 0x54, 0x05, 0x16,
+ 0x5B, 0x4B, 0xFF, 0xFF, 0x6E, 0x6E, 0x05, 0x15, 0x62, 0x4F, 0xFF, 0xFF, 0x72, 0x72, 0x05, 0x13, 0x4B, 0x53, 0xFF,
+ 0xFF, 0x54, 0x54, 0x00, 0x6C, 0x92, 0x4D, 0x00, 0x00, 0x00, 0xC8, 0xFF, 0xF1, 0x0C, 0x00, 0x01, 0xA5, 0xFF, 0xFF,
+ 0x00, 0x06, 0x10, 0x5F, 0x01, 0x93, 0xFF, 0xFF, 0x40, 0x10, 0x10, 0x5F, 0x01, 0x9F, 0xFF, 0xFF, 0x44, 0x30, 0x10,
+ 0x5F, 0x01, 0x97, 0xFF, 0xFF, 0x48, 0x78, 0x10, 0x5F, 0x01, 0x92, 0xFF, 0xFF, 0x4C, 0x9D, 0x10, 0x5F, 0x01, 0x92,
+ 0xFF, 0xFF, 0x50, 0x50, 0x10, 0x5F, 0x40, 0x0A, 0xFF, 0xFF, 0x00, 0x06, 0x10, 0x5F, 0x40, 0x1C, 0xFF, 0xFF, 0x40,
+ 0x10, 0x10, 0x5F, 0x40, 0x1C, 0xFF, 0xFF, 0x44, 0x30, 0x10, 0x5F, 0x40, 0x1C, 0xFF, 0xFF, 0x48, 0x78, 0x10, 0x5F,
+ 0x40, 0x1E, 0xFF, 0xFF, 0x4C, 0x9D, 0x10, 0x5F, 0x40, 0x1C, 0xFF, 0xFF, 0x50, 0x50, 0x10, 0x5F, 0x00, 0x24, 0xDE,
+ 0x49, 0x00, 0x00, 0x00, 0xEC, 0xFF, 0xFF, 0x06, 0x00, 0x03, 0xFF, 0x04, 0x05, 0x43, 0xFF, 0x08, 0x09, 0x47, 0xFF,
+ 0x08, 0x09, 0x4B, 0xFF, 0x06, 0x07, 0x4F, 0xFF, 0x06, 0x07, 0x53, 0xFF, 0x06, 0x07, 0x00, 0x44, 0x06, 0x5A, 0x00,
+ 0x00, 0x01, 0x30, 0x00, 0x07, 0x01, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x00, 0x22, 0x00, 0x08, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00,
+ 0x08, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C,
+ 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x18, 0x8C, 0x53, 0x00, 0x00, 0x01, 0x48, 0x39, 0x54, 0xDC, 0x66, 0xBC,
+ 0x58, 0x44, 0xD0, 0xBE, 0x5D, 0x2F, 0x1B, 0x41, 0x1A, 0xB8, 0x52, 0x00, 0x1C, 0x9B, 0x37, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x02, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x2D, 0xC6, 0xC0, 0x33, 0x44, 0x55, 0x66, 0x00, 0xF0, 0x11,
+ 0x22};
+#endif
+
+#endif
diff --git a/third-party/fsl_wifi/incl/wifi_ping.h b/third-party/fsl_wifi/incl/wifi_ping.h
new file mode 100644
index 0000000000000000000000000000000000000000..3710fd342a5c03500b3b73a280b0bf7c8d69cb02
--- /dev/null
+++ b/third-party/fsl_wifi/incl/wifi_ping.h
@@ -0,0 +1,52 @@
+/** @file wifi_ping.h
+ *
+ * @brief This file provides the support for network utility ping
+ */
+/*
+ * Copyright 2008-2020 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#ifndef _WIFI_PING_H_
+#define _WIFI_PING_H_
+
+#include
+
+#define ping_e(...) wmlog_e("ping", ##__VA_ARGS__)
+#define ping_w(...) wmlog_w("ping", ##__VA_ARGS__)
+
+#define PING_ID 0xAFAFU
+#define PING_INTERVAL 1000
+#define PING_DEFAULT_TIMEOUT_SEC 2
+#define PING_DEFAULT_COUNT 10
+#define PING_DEFAULT_SIZE 56
+#define PING_MAX_SIZE 65507U
+#define PING_MAX_COUNT 65535U
+
+/** Register Network Utility CLI commands.
+ *
+ * Register the Network Utility CLI commands. Currently, only ping command is
+ * supported.
+ *
+ * \note This function can only be called by the application after \ref
+ * wlan_init() called.
+ *
+ * \return WM_SUCCESS if the CLI commands are registered
+ * \return -WM_FAIL otherwise (for example if this function
+ * was called while the CLI commands were already registered)
+ */
+
+int ping_cli_init(void);
+
+/** Unregister Network Utility CLI commands.
+ *
+ * Unregister the Network Utility CLI commands.
+ *
+ * \return WM_SUCCESS if the CLI commands are unregistered
+ * \return -WM_FAIL otherwise
+ */
+
+int ping_cli_deinit(void);
+#endif /*_WIFI_PING_H_ */
diff --git a/third-party/fsl_wifi/incl/wifidriver/mlan_sdio_api.h b/third-party/fsl_wifi/incl/wifidriver/mlan_sdio_api.h
new file mode 100644
index 0000000000000000000000000000000000000000..b000d6025c2f108166bb5e63b545e38a061e3db3
--- /dev/null
+++ b/third-party/fsl_wifi/incl/wifidriver/mlan_sdio_api.h
@@ -0,0 +1,128 @@
+/*
+ * Copyright 2008-2020 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/*! \file mlan_sdio_api.h
+ * \brief SDIO Driver
+ *
+ * The SDIO driver is used to configure and do
+ * data transfer over the SDIO interface
+ *
+ * \section mlan_sdio_usage Usage
+ *
+ * Steps to use sdio with mlan:
+ *
+ * 1. Register gpio using \ref sdio_drv_init()
+ *
+ * 2. Open the device using sdio_drv_open() call.
+ * This will return a handler to gpio.
+ *
+ * 3. To do various SDIO related operations:
+ *
+ * - sdio_drv_write() : Write using CMD53
+ * - sdio_drv_read() : Read using CMD53
+ * - sdio_drv_creg_write() : Write using CMD52
+ * - sdio_drv_creg_read() : Read using CMD52
+ *
+ * Locking mechanism is implemented to provide atomic access.
+ *
+ * 4. Close the device using sdio_drv_close() call.
+ */
+
+#ifndef _MLAN_SDIO_API_H_
+#define _MLAN_SDIO_API_H_
+
+#include
+
+#define sdio_e(...) wmlog_e("sdio", ##__VA_ARGS__)
+
+#ifdef CONFIG_WIFI_SDIO_DEBUG
+#define sdio_d(...) wmlog("sdio", ##__VA_ARGS__)
+#else
+#define sdio_d(...)
+#endif /* CONFIG_WIFI_SDIO_DEBUG */
+
+#define SDIO_GO_IDLE_STATE ((uint8_t)0)
+#define SDIO_SET_REL_ADDR ((uint8_t)3)
+#define SDIO_SDIO_SEN_OP_COND ((uint8_t)5)
+#define SDIO_SEL_DESEL_CARD ((uint8_t)7)
+#define SDIO_RW_DIRECT ((uint8_t)52)
+#define SDIO_RW_DIRECT_EXTENDED ((uint8_t)53)
+
+/* Depends on DMA_BUFSZ */
+#define DMA_BOUNDARY_SIZE (512 * 1024)
+
+/** Read Card Register
+ *
+ * This is used to read card register using CMD52.
+ * This is a blocking call.
+ *
+ * \param addr Card Register Address
+ * \param fn Number of the function with the Card
+ * \param resp Response of CMD52
+ * \return true on success, false otherwise
+ */
+int sdio_drv_creg_read(int addr, int fn, uint32_t *resp);
+
+/** Write to Card Register
+ *
+ * This is used to write to card register using CMD52.
+ * This is a blocking call.
+ *
+ * \param addr Card Register Address
+ * \param fn Number of the function with the Card
+ * \param data value to be written on register
+ * \param resp Response of CMD52
+ * \return true on success, false otherwise
+ */
+bool sdio_drv_creg_write(int addr, int fn, uint8_t data, uint32_t *resp);
+/** Read Data from SDIO
+ *
+ * This is used to read data from SDIO card using CMD53.
+ * This is a blocking call.
+ *
+ * \param addr Card Register Address
+ * \param fn Number of the function with the Card
+ * \param bcnt Number of blocks to be read
+ * \param bsize Size of each block
+ * \param buf Buffer to read the data into
+ * \param resp Response of CMD53
+ * \return true on success, false otherwise
+ */
+int sdio_drv_read(uint32_t addr, uint32_t fn, uint32_t bcnt, uint32_t bsize, uint8_t *buf, uint32_t *resp);
+
+/** Write Data to SDIO
+ *
+ * This is used to write data to SDIO card using CMD53.
+ * This is a blocking call.
+ *
+ * \param addr Card Register Address
+ * \param fn Number of the function with the Card
+ * \param bcnt Number of blocks to be written
+ * \param bsize Size of each block
+ * \param buf Buffer to write the data into
+ * \param resp Response of CMD53
+ * \return true on success, false otherwise
+ */
+bool sdio_drv_write(uint32_t addr, uint32_t fn, uint32_t bcnt, uint32_t bsize, uint8_t *buf, uint32_t *resp);
+
+/** Initialize the SDIO Driver
+ *
+ * This should be called once before using the driver.
+ * The callback for Card Interrupt can be registered using this call.
+ *
+ * \param cd_int Callback for Card Detect Interrupt
+ * \return WM_SUCCESS or -WM_FAIL
+ */
+int sdio_drv_init(void (*cd_int)(int));
+
+/** Deinitialize the SDIO Driver
+ *
+ * \return void
+ */
+void sdio_drv_deinit(void);
+
+#endif /* !_MDEV_SDIO_API_H_ */
diff --git a/third-party/fsl_wifi/incl/wifidriver/wifi-decl.h b/third-party/fsl_wifi/incl/wifidriver/wifi-decl.h
new file mode 100644
index 0000000000000000000000000000000000000000..0aa33057fe0457fc90ef99a6453219ad906e878f
--- /dev/null
+++ b/third-party/fsl_wifi/incl/wifidriver/wifi-decl.h
@@ -0,0 +1,1302 @@
+/*
+ * Copyright 2008-2022 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+/*! \file wifi-decl.h
+ * \brief Wifi structure declarations
+ */
+
+#ifndef __WIFI_DECL_H__
+#define __WIFI_DECL_H__
+
+#include
+#include
+#include