Browse Source

!133 issue fixed

* fix issue
pull/134/head
huanghe 7 months ago
parent
commit
eb784ab0df
  1. 31
      doc/ChangeLog.md
  2. 5
      doc/reference/usr/use_in_phytium_pi.md
  3. 21
      example/ai/tinymaix/src/tinymaix_mbnet_example.c
  4. 26
      example/ai/tinymaix/src/tinymaix_mnist_example.c
  5. 18
      example/ai/tinymaix/src/tinymaix_vww_example.c
  6. 29
      example/peripherals/i2s/i2s_play_from_record/src/i2s_example.c
  7. 2
      example/system/newlib_test/README.md
  8. 9
      third-party/fsl_sdmmc/host/fsdif/fsl_hc_fsdif.c
  9. 9
      third-party/lvgl-8.3/include.mk
  10. 14
      third-party/lvgl-8.3/src.mk

31
doc/ChangeLog.md

@ -1,3 +1,33 @@
# Phytium Standalone SDK 2024-04-02 ChangeLog
Change Log since 2024-04-02
## doc
- Update the download link in use_in_phytium_pi.md
# Phytium Standalone SDK 2024-04-01 ChangeLog
Change Log since 2024-04-01
## third-party
- Clear redundant codes in FSDIFHOST_TransferFunction_Irq
# Phytium Standalone SDK 2024-04-01 ChangeLog
Change Log since 2024-3-29
# example
- change ai example with format
- change i2s example with defined
# third-party
- change lvgl src.mk for solving issue 98
# Phytium Standalone SDK 2024-03-29 ChangeLog # Phytium Standalone SDK 2024-03-29 ChangeLog
Change Log since 2024-3-28 Change Log since 2024-3-28
@ -183,7 +213,6 @@ Change Log since 2024-03-11
- Modify ipc && pcie && pmu && psci example to automate auto_testing. - Modify ipc && pcie && pmu && psci example to automate auto_testing.
# Phytium Standalone SDK 2024-03-11 ChangeLog # Phytium Standalone SDK 2024-03-11 ChangeLog
Change Log since 2024-03-11 Change Log since 2024-03-11

5
doc/reference/usr/use_in_phytium_pi.md

@ -12,8 +12,7 @@ ARM v8 指令集,主频最高可达 1.8GHz
## 使用飞腾派裸机镜像 ## 使用飞腾派裸机镜像
- 下载 [镜像](https://pan.baidu.com/s/1CTP3eWvK-H3-Mb72xs__VQ#list/path=%2F),提取码 tei2 - 下载 [镜像](https://pan.baidu.com/s/12x_ZUao4AYL5_B8GxjOLFA),提取码 phyt
- 下载之后解压,使用 sdcard.img-rtos-4g,注意 2G 版本的飞腾派只能使用 2G 版本的镜像 sdcard.img-rtos-2g - 下载之后解压,使用 sdcard.img-rtos-4g,注意 2G 版本的飞腾派只能使用 2G 版本的镜像 sdcard.img-rtos-2g
- Windows 上使用 balenaEtcher 工具烧入一张 SD 卡(>= 32G),镜像的格式如下图所示,由3个分区组成,前 64MB 是二进制无格式的启动镜像,然后 16G 是 Phytium Pi OS 的根文件系统,格式为 ext4,最后 4G 是裸机文件系统,格式为 fat32, - Windows 上使用 balenaEtcher 工具烧入一张 SD 卡(>= 32G),镜像的格式如下图所示,由3个分区组成,前 64MB 是二进制无格式的启动镜像,然后 16G 是 Phytium Pi OS 的根文件系统,格式为 ext4,最后 4G 是裸机文件系统,格式为 fat32,
@ -26,13 +25,11 @@ ARM v8 指令集,主频最高可达 1.8GHz
| (无格式) | (ext4格式) | (fat32格式) | | (无格式) | (ext4格式) | (fat32格式) |
---------------------------------------------------------------------------------- ----------------------------------------------------------------------------------
``` ```
- 在 linux 系统上,可以使用 dd 命令将镜像写入 SD 卡 (/dev/sdd) - 在 linux 系统上,可以使用 dd 命令将镜像写入 SD 卡 (/dev/sdd)
``` ```
sudo dd if=./sdcard.img-rtos-4g of=/dev/sdd bs=1M count=20000 status=progress sudo dd if=./sdcard.img-rtos-4g of=/dev/sdd bs=1M count=20000 status=progress
``` ```
- SD 卡烧入完成之后插入飞腾派 SD 卡槽,重启飞腾派就会自动进入裸机程序, - SD 卡烧入完成之后插入飞腾派 SD 卡槽,重启飞腾派就会自动进入裸机程序,
``` ```

21
example/ai/tinymaix/src/tinymaix_mbnet_example.c

@ -57,17 +57,21 @@
#include "tinymaix_mbnet_example.h" #include "tinymaix_mbnet_example.h"
static tm_err_t layer_cb(tm_mdl_t *mdl, tml_head_t *lh) static tm_err_t layer_cb(tm_mdl_t *mdl, tml_head_t *lh)
{ //dump middle result {
//dump middle result
int h = lh->out_dims[1]; int h = lh->out_dims[1];
int w = lh->out_dims[2]; int w = lh->out_dims[2];
int ch = lh->out_dims[3]; int ch = lh->out_dims[3];
mtype_t *output = TML_GET_OUTPUT(mdl, lh); mtype_t *output = TML_GET_OUTPUT(mdl, lh);
TM_DBG("Layer %d callback ========\n", mdl->layer_i); TM_DBG("Layer %d callback ========\n", mdl->layer_i);
for(int y=0; y<h; y++){ for (int y = 0; y < h; y++)
{
TM_DBG("["); TM_DBG("[");
for(int x=0; x<w; x++){ for (int x = 0; x < w; x++)
{
TM_DBG("["); TM_DBG("[");
for(int c=0; c<ch; c++){ for (int c = 0; c < ch; c++)
{
#if TM_MDL_TYPE == TM_MDL_FP32 #if TM_MDL_TYPE == TM_MDL_FP32
TM_DBG("%.3f,", output[(y * w + x)*ch + c]); TM_DBG("%.3f,", output[(y * w + x)*ch + c]);
#else #else
@ -89,8 +93,10 @@ static void parse_output(tm_mat_t* outs)
float *data = out.dataf; float *data = out.dataf;
float maxp = 0; float maxp = 0;
int maxi = -1; int maxi = -1;
for(int i=0; i<1000; i++){ for (int i = 0; i < 1000; i++)
if(data[i] > maxp) { {
if (data[i] > maxp)
{
maxi = i; maxi = i;
maxp = data[i]; maxp = data[i];
} }
@ -137,8 +143,9 @@ int FTinyMaixMbnetExample()
{ {
printf("tm run error: %d\n", res); printf("tm run error: %d\n", res);
} }
}
tm_unload(&mdl); tm_unload(&mdl);
}
if (res == TM_OK) if (res == TM_OK)
{ {

26
example/ai/tinymaix/src/tinymaix_mnist_example.c

@ -57,18 +57,22 @@
static tm_err_t layer_cb(tm_mdl_t *mdl, tml_head_t *lh) static tm_err_t layer_cb(tm_mdl_t *mdl, tml_head_t *lh)
{ //dump middle result {
//dump middle result
int h = lh->out_dims[1]; int h = lh->out_dims[1];
int w = lh->out_dims[2]; int w = lh->out_dims[2];
int ch = lh->out_dims[3]; int ch = lh->out_dims[3];
mtype_t *output = TML_GET_OUTPUT(mdl, lh); mtype_t *output = TML_GET_OUTPUT(mdl, lh);
TM_DBG("Layer %d callback ========\n", mdl->layer_i); TM_DBG("Layer %d callback ========\n", mdl->layer_i);
for(int y=0; y<h; y++){ for (int y = 0; y < h; y++)
{
TM_DBG("["); TM_DBG("[");
for(int x=0; x<w; x++){ for (int x = 0; x < w; x++)
{
TM_DBG("["); TM_DBG("[");
for(int c=0; c<ch; c++){ for (int c = 0; c < ch; c++)
{
#if TM_MDL_TYPE == TM_MDL_FP32 #if TM_MDL_TYPE == TM_MDL_FP32
TM_DBG("%.3f,", output[(y * w + x)*ch + c]); TM_DBG("%.3f,", output[(y * w + x)*ch + c]);
#else #else
@ -90,9 +94,11 @@ static void parse_output(tm_mat_t* outs)
float *data = out.dataf; float *data = out.dataf;
float maxp = 0; float maxp = 0;
int maxi = -1; int maxi = -1;
for(int i=0; i<10; i++){ for (int i = 0; i < 10; i++)
{
TM_DBG("%d: %.3f\n", i, data[i]); TM_DBG("%d: %.3f\n", i, data[i]);
if(data[i] > maxp) { if (data[i] > maxp)
{
maxi = i; maxi = i;
maxp = data[i]; maxp = data[i];
} }
@ -131,7 +137,10 @@ int FTinyMaixMnistExample()
for (int i = 0; i < 28 * 28; i++) for (int i = 0; i < 28 * 28; i++)
{ {
TM_DBG("%3d,", mnist_pic[j][i]); TM_DBG("%3d,", mnist_pic[j][i]);
if(i%28==27)TM_DBG("\n"); if (i % 28 == 27)
{
TM_DBG("\n");
}
} }
tm_mat_t in_uint8 = {3, 28, 28, 1, {(mtype_t *)mnist_pic[j]}}; tm_mat_t in_uint8 = {3, 28, 28, 1, {(mtype_t *)mnist_pic[j]}};
tm_mat_t in = {3, 28, 28, 1, {NULL}}; tm_mat_t in = {3, 28, 28, 1, {NULL}};
@ -162,9 +171,8 @@ int FTinyMaixMnistExample()
{ {
printf("tm run error: %d\n", res); printf("tm run error: %d\n", res);
} }
/* code */
}
tm_unload(&mdl); tm_unload(&mdl);
}
if (res == TM_OK) if (res == TM_OK)
{ {

18
example/ai/tinymaix/src/tinymaix_vww_example.c

@ -69,11 +69,14 @@ static tm_err_t layer_cb(tm_mdl_t* mdl, tml_head_t* lh)
mtype_t *output = TML_GET_OUTPUT(mdl, lh); mtype_t *output = TML_GET_OUTPUT(mdl, lh);
return TM_OK; return TM_OK;
TM_DBG("Layer %d callback ========\n", mdl->layer_i); TM_DBG("Layer %d callback ========\n", mdl->layer_i);
for(int y=0; y<h; y++){ for (int y = 0; y < h; y++)
{
TM_DBG("["); TM_DBG("[");
for(int x=0; x<w; x++){ for (int x = 0; x < w; x++)
{
TM_DBG("["); TM_DBG("[");
for(int c=0; c<ch; c++){ for (int c = 0; c < ch; c++)
{
#if TM_MDL_TYPE == TM_MDL_FP32 #if TM_MDL_TYPE == TM_MDL_FP32
TM_DBG("%.3f,", output[(y * w + x)*ch + c]); TM_DBG("%.3f,", output[(y * w + x)*ch + c]);
#else #else
@ -95,9 +98,11 @@ static void parse_output(tm_mat_t* outs)
float *data = out.dataf; float *data = out.dataf;
float maxp = 0; float maxp = 0;
int maxi = -1; int maxi = -1;
for(int i=0; i<CLASS_NUM; i++){ for (int i = 0; i < CLASS_NUM; i++)
{
printf("%d: %.3f\n", i, data[i]); printf("%d: %.3f\n", i, data[i]);
if(data[i] > maxp) { if (data[i] > maxp)
{
maxi = i; maxi = i;
maxp = data[i]; maxp = data[i];
} }
@ -142,8 +147,9 @@ int FTinyMaixVwwExample()
{ {
printf("tm run error: %d\n", res); printf("tm run error: %d\n", res);
} }
}
tm_unload(&mdl); tm_unload(&mdl);
}
if (res == TM_OK) if (res == TM_OK)
{ {

29
example/peripherals/i2s/i2s_play_from_record/src/i2s_example.c

@ -13,7 +13,7 @@
* *
* FilePath: i2s_rx_example.c * FilePath: i2s_rx_example.c
* Created Date: 2023-07-10 10:25:00 * Created Date: 2023-07-10 10:25:00
* Last Modified: 2024-03-22 14:51:22 * Last Modified: 2024-03-29 15:22:41
* Description: This file is for I2S RX example function implmentation. * Description: This file is for I2S RX example function implmentation.
* *
* Modify History: * Modify History:
@ -58,7 +58,8 @@ static FDdmaChanConfig rx_config = {0};
static FDdmaChanConfig tx_config = {0}; static FDdmaChanConfig tx_config = {0};
/* 音频文件存放地址 */ /* 音频文件存放地址 */
#define buffer_length 16384 #define buffer_length 16384
static u32 rx_buf = 0xa0000000; static u32 rx_channel = 1; /* 接收通道为DDMA通道1 */
static u32 tx_channel = 0; /* 接收通道为DDMA通道0 */
static uint8_t Data_Buff[2][buffer_length]; static uint8_t Data_Buff[2][buffer_length];
volatile static uint8_t buff_using_num = 0; volatile static uint8_t buff_using_num = 0;
@ -68,8 +69,8 @@ FError FI2sDdmaDeviceTx(u32 chan_id, u32 work_mode, uintptr src, fsize_t total_b
/************************** Function *****************************************/ /************************** Function *****************************************/
static void FDdmaRxDMADone() static void FDdmaRxDMADone()
{ {
FI2sDdmaDeviceRX(1, 0, (uintptr)Data_Buff[!buff_using_num], buffer_length, buffer_length); FI2sDdmaDeviceRX(rx_channel, AUDIO_PCM_STREAM_CAPTURE, (uintptr)Data_Buff[!buff_using_num], buffer_length, buffer_length);
FI2sDdmaDeviceTx(0, 1, (uintptr)Data_Buff[buff_using_num], buffer_length, buffer_length); FI2sDdmaDeviceTx(tx_channel, AUDIO_PCM_STREAM_PLAYBACK, (uintptr)Data_Buff[buff_using_num], buffer_length, buffer_length);
buff_using_num = !buff_using_num; buff_using_num = !buff_using_num;
return; return;
} }
@ -213,7 +214,7 @@ FError FI2sDdmaDeviceTx(u32 chan_id, u32 work_mode, uintptr src, fsize_t total_b
} }
tx_config.slave_id = 0U, tx_config.slave_id = 0U,
tx_config.req_mode = 1; tx_config.req_mode = AUDIO_PCM_STREAM_PLAYBACK;
tx_config.ddr_addr = (uintptr)src; tx_config.ddr_addr = (uintptr)src;
tx_config.dev_addr = i2s_config.base_addr + FI2S_TXDMA ; tx_config.dev_addr = i2s_config.base_addr + FI2S_TXDMA ;
tx_config.trans_len = total_bytes; tx_config.trans_len = total_bytes;
@ -221,7 +222,7 @@ FError FI2sDdmaDeviceTx(u32 chan_id, u32 work_mode, uintptr src, fsize_t total_b
tx_config.first_desc_addr = (uintptr)bdl_desc_list; tx_config.first_desc_addr = (uintptr)bdl_desc_list;
tx_config.valid_desc_num = bdl_num; tx_config.valid_desc_num = bdl_num;
ret = FDdmaChanBdlConfigure(&ddmac, 0, &tx_config); ret = FDdmaChanBdlConfigure(&ddmac, tx_channel, &tx_config);
if (ret != FI2S_SUCCESS) if (ret != FI2S_SUCCESS)
{ {
printf("DDMA BDL configure failer.\r\n"); printf("DDMA BDL configure failer.\r\n");
@ -278,7 +279,7 @@ FError FI2sDdmaDeviceRX(u32 chan_id, u32 work_mode, uintptr src, fsize_t total_b
} }
rx_config.slave_id = 0U, rx_config.slave_id = 0U,
rx_config.req_mode = 0; rx_config.req_mode = AUDIO_PCM_STREAM_CAPTURE;
rx_config.ddr_addr = (uintptr)src; rx_config.ddr_addr = (uintptr)src;
rx_config.dev_addr = i2s_config.base_addr + FI2S_RXDMA ; rx_config.dev_addr = i2s_config.base_addr + FI2S_RXDMA ;
rx_config.trans_len = total_bytes; rx_config.trans_len = total_bytes;
@ -286,7 +287,7 @@ FError FI2sDdmaDeviceRX(u32 chan_id, u32 work_mode, uintptr src, fsize_t total_b
rx_config.first_desc_addr = (uintptr)bdl_desc_list; rx_config.first_desc_addr = (uintptr)bdl_desc_list;
rx_config.valid_desc_num = bdl_num; rx_config.valid_desc_num = bdl_num;
ret = FDdmaChanBdlConfigure(&ddmac, 1, &rx_config); ret = FDdmaChanBdlConfigure(&ddmac, rx_channel, &rx_config);
if (ret != FI2S_SUCCESS) if (ret != FI2S_SUCCESS)
{ {
@ -301,10 +302,8 @@ FError FI2sDdmaPlayExample(void)
{ {
FError ret = FES8336_SUCCESS; FError ret = FES8336_SUCCESS;
const u32 ddma_id = FDDMA2_I2S_ID; /* I2S所绑定的DDMA默认是DDMA-2 */ const u32 ddma_id = FDDMA2_I2S_ID; /* I2S所绑定的DDMA默认是DDMA-2 */
const u32 channel = 1; /* 接收通道为DDMA通道1 */
u32 total_byte = buffer_length; /* 接收音频的最大长度,超过此长度将覆盖原有音频,此值为自定义 */ u32 total_byte = buffer_length; /* 接收音频的最大长度,超过此长度将覆盖原有音频,此值为自定义 */
u32 per_buffer_len = buffer_length; /* 每一个BDL描述符所负责的数据长度,请保持total_byte是per_buffer_len的倍数 */ u32 per_buffer_len = buffer_length; /* 每一个BDL描述符所负责的数据长度,请保持total_byte是per_buffer_len的倍数 */
u32 work_mode = AUDIO_PCM_STREAM_CAPTURE; /* capture mode */
u32 word_length = AUDIO_PCM_STREAM_WORD_LENGTH_16; /* 16-bits word length */ u32 word_length = AUDIO_PCM_STREAM_WORD_LENGTH_16; /* 16-bits word length */
ret = FI2sRxEs8336Init(word_length); ret = FI2sRxEs8336Init(word_length);
@ -327,17 +326,17 @@ FError FI2sDdmaPlayExample(void)
printf("Init the I2S failed.\r\n"); printf("Init the I2S failed.\r\n");
return ret; return ret;
} }
ret = FI2sDdmaDeviceRX(1, 0, (uintptr)Data_Buff[0], total_byte, per_buffer_len); ret = FI2sDdmaDeviceRX(rx_channel, AUDIO_PCM_STREAM_CAPTURE, (uintptr)Data_Buff[0], total_byte, per_buffer_len);
ret = FI2sDdmaDeviceTx(0, 1, (uintptr)Data_Buff[1], total_byte, per_buffer_len); ret = FI2sDdmaDeviceTx(tx_channel, AUDIO_PCM_STREAM_PLAYBACK, (uintptr)Data_Buff[1], total_byte, per_buffer_len);
if (FI2S_SUCCESS != ret) if (FI2S_SUCCESS != ret)
{ {
printf("I2S trans failed.\r\n"); printf("I2S trans failed.\r\n");
return ret; return ret;
} }
FDdmaSetupInterrupt(&ddmac); FDdmaSetupInterrupt(&ddmac);
FDdmaRegisterChanEvtHandler(&ddmac, 1, FDDMA_CHAN_EVT_REQ_DONE, FDdmaRxDMADone, NULL); FDdmaRegisterChanEvtHandler(&ddmac, rx_channel, FDDMA_CHAN_EVT_REQ_DONE, FDdmaRxDMADone, NULL);
FDdmaChanActive(&ddmac, 1); FDdmaChanActive(&ddmac, rx_channel);
FDdmaChanActive(&ddmac, 0); FDdmaChanActive(&ddmac, tx_channel);
FDdmaStart(&ddmac); FDdmaStart(&ddmac);
return ret; return ret;
} }

2
example/system/newlib_test/README.md

@ -48,7 +48,7 @@ Newlib是一个面向嵌入式系统的c运行库。
> 配置成E2000D,对于其它平台,使用对应的默认配置,如E2000d 32位: > 配置成E2000D,对于其它平台,使用对应的默认配置,如E2000d 32位:
``` ```
$ make load_kconfig LOAD_CONFIG_NAME=e2000d_aarch32_demo_template $ make load_kconfig LOAD_CONFIG_NAME=e2000d_aarch32_demo_newlib
``` ```
- 在host侧完成构建 - 在host侧完成构建

9
third-party/fsl_sdmmc/host/fsdif/fsl_hc_fsdif.c

@ -541,15 +541,6 @@ static status_t FSDIFHOST_TransferFunction_Irq(sdmmchost_t *host, sdmmchost_tran
if (!dev->err_occur) if (!dev->err_occur)
{ {
/* in IRQ mode, read PIO data after recv DTO flag */ /* in IRQ mode, read PIO data after recv DTO flag */
if (!(host->config.enableDMA) && (NULL != content->data) && (NULL != content->data->rxData))
{
assert (FSDIF_PIO_TRANS_MODE == dev->hc.config.trans_mode);
if (FSDIF_SUCCESS != FSdifPIOReadData(&dev->hc, cmd_data->data_p))
{
status = kStatus_NoData;
return status;
}
}
if (FSDIF_SUCCESS != FSdifGetCmdResponse(&dev->hc, cmd_data)) if (FSDIF_SUCCESS != FSdifGetCmdResponse(&dev->hc, cmd_data))
{ {

9
third-party/lvgl-8.3/include.mk

@ -4,20 +4,11 @@ ifdef CONFIG_USE_LVGL
$(SDK_DIR)/third-party/lvgl-8.3\ $(SDK_DIR)/third-party/lvgl-8.3\
$(SDK_DIR)/third-party/lvgl-8.3/src \ $(SDK_DIR)/third-party/lvgl-8.3/src \
$(SDK_DIR)/third-party/lvgl-8.3/src/core \ $(SDK_DIR)/third-party/lvgl-8.3/src/core \
$(SDK_DIR)/third-party/lvgl-8.3/src/draw \
$(SDK_DIR)/third-party/lvgl-8.3/src/extra \
$(SDK_DIR)/third-party/lvgl-8.3/src/font \ $(SDK_DIR)/third-party/lvgl-8.3/src/font \
$(SDK_DIR)/third-party/lvgl-8.3/src/hal \ $(SDK_DIR)/third-party/lvgl-8.3/src/hal \
$(SDK_DIR)/third-party/lvgl-8.3/src/misc \ $(SDK_DIR)/third-party/lvgl-8.3/src/misc \
$(SDK_DIR)/third-party/lvgl-8.3/src/font \
$(SDK_DIR)/third-party/lvgl-8.3/src/draw/sdl \
$(SDK_DIR)/third-party/lvgl-8.3/src/draw/sw \ $(SDK_DIR)/third-party/lvgl-8.3/src/draw/sw \
$(SDK_DIR)/third-party/lvgl-8.3/src/layouts \
$(SDK_DIR)/third-party/lvgl-8.3/src/libs \
$(SDK_DIR)/third-party/lvgl-8.3/src/others \
$(SDK_DIR)/third-party/lvgl-8.3/src/themes \
$(SDK_DIR)/third-party/lvgl-8.3/src/widgets \ $(SDK_DIR)/third-party/lvgl-8.3/src/widgets \
$(SDK_DIR)/third-party/lvgl-8.3/src/libs \
$(SDK_DIR)/third-party/lvgl-8.3/demos/benchmark/assets \ $(SDK_DIR)/third-party/lvgl-8.3/demos/benchmark/assets \
$(SDK_DIR)/third-party/lvgl-8.3/demos/benchmark\ $(SDK_DIR)/third-party/lvgl-8.3/demos/benchmark\
$(SDK_DIR)/third-party/lvgl-8.3/demos/widgets/assets\ $(SDK_DIR)/third-party/lvgl-8.3/demos/widgets/assets\

14
third-party/lvgl-8.3/src.mk

@ -1,17 +1,15 @@
CSRCS_RELATIVE_FILES += $(wildcard src/*.c) \ CSRCS_RELATIVE_FILES +=$(wildcard src/core/*.c) \
$(wildcard src/core/*.c) \
$(wildcard src/draw/*.c) \ $(wildcard src/draw/*.c) \
$(wildcard src/extra/*.c) \ $(wildcard src/font/lv_font_loader.c) \
$(wildcard src/font/*.c) \ $(wildcard src/font/lv_font.c) \
$(wildcard src/font/lv_font_fmt_txt.c) \
$(wildcard src/font/lv_font_montserrat_14.c) \
$(wildcard src/hal/*.c) \ $(wildcard src/hal/*.c) \
$(wildcard src/draw/sdl/*.c) \
$(wildcard src/draw/sw/*.c) \ $(wildcard src/draw/sw/*.c) \
$(wildcard src/draw/hal/*.c) \
$(wildcard src/layouts/*.c) \ $(wildcard src/layouts/*.c) \
$(wildcard src/libs/*.c) \ $(wildcard src/libs/*.c) \
$(wildcard src/misc/*.c)\ $(wildcard src/misc/*.c)\
$(wildcard src/others/*.c) \
$(wildcard src/themes/*.c) \ $(wildcard src/themes/*.c) \
$(wildcard src/widgets/*.c) \ $(wildcard src/widgets/*.c) \
$(wildcard demos/benchmark/assets/*.c) \ $(wildcard demos/benchmark/assets/*.c) \
@ -20,8 +18,6 @@
$(wildcard demos/widgets/*.c)\ $(wildcard demos/widgets/*.c)\
$(wildcard demos/stress/*.c)\ $(wildcard demos/stress/*.c)\
ifdef CONFIG_USE_BAREMETAL ifdef CONFIG_USE_BAREMETAL
CSRCS_RELATIVE_FILES += $(wildcard port/*.c) CSRCS_RELATIVE_FILES += $(wildcard port/*.c)

Loading…
Cancel
Save