Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
slav-at-attachix committed Dec 20, 2023
2 parents 772a421 + 3537c5c commit e3846d1
Show file tree
Hide file tree
Showing 130 changed files with 5,205 additions and 1,859 deletions.
7 changes: 6 additions & 1 deletion .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
# Required
version: 2

# Required
build:
os: ubuntu-20.04
tools:
python: "3.8"

# Optionally build your docs in additional formats such as PDF and ePub
formats:
- htmlzip
Expand All @@ -14,7 +20,6 @@ sphinx:

# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.8
install:
- requirements: docs/requirements.txt

Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,20 @@ If you like **Sming**, give it a star, or fork it and [contribute](#contribute)!
Sming supports multiple architectures and has a [plethora of features](https://sming.readthedocs.io/en/latest/index.html#summary).
Choose the architecture of your choice to [install the needed development software](https://sming.readthedocs.io/en/latest/getting-started).

You can also try Sming without installing anything locally. We have an [interactive tutorial](https://www.katacoda.com/slaff/scenarios/sming-host-emulator) that can be run directly from your browser.
You can also try Sming without installing anything locally. We have an [interactive tutorial](https://killercoda.com/slaff/scenario/sming-host-emulator) that can be run directly from your browser.

## Documentation

The purpose of Sming is to simplify the creation of embedded applications. The documentation will help you get started in no time.

- [**Documentation for version 5.0.0**](https://sming.readthedocs.io/en/stable) - current stable version.
- [**Documentation for version 5.1.0**](https://sming.readthedocs.io/en/stable) - current stable version.
- [Documentation for latest](https://sming.readthedocs.io/en/latest) - development version.

## Releases

### Stable

- [Sming V5.0.0](https://github.com/SmingHub/Sming/releases/tag/5.0.0) - great new features, performance and stability improvements.
- [Sming V5.1.0](https://github.com/SmingHub/Sming/releases/tag/5.1.0) - great new features, performance and stability improvements.

### Development

Expand Down
8 changes: 4 additions & 4 deletions Sming/Arch/Esp32/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -102,13 +102,13 @@ See :component-esp32:`esp32` for further details.


IDF versions
============
------------

Sming currently supports IDF versions 4.3, 4.4 and 5.0.

The default installed IDF version is 4.4. This can be changed as follows::

INSTALL_IDF_VER=5.0 $SMING_HOME/../Tools/install.sh
INSTALL_IDF_VER=5.0 $SMING_HOME/../Tools/install.sh esp32

The installation script creates a soft-link in ``/opt/esp-idf`` pointing to the last version installed.
Use the `IDF_PATH` environment variable or change the soft-link to select which one to use.
Expand All @@ -120,8 +120,8 @@ After switching versions, run `make clean components-clean` before re-compiling.
Currently, switching from version 4.x to 5.0 or vice-versa requires an additional step
as they use different versions of the 'pyparsing' Python library.

If moving from IDF 4.x to 5.0: `python -m pip install --upgrade pyparsing`
Moving from IDF 5.0 to 4.x: `python -m pip install pyparsing\<2.4`
If moving from IDF 4.x to 5.0: ``python -m pip install --upgrade pyparsing``
Moving from IDF 5.0 to 4.x: ``python -m pip install 'pyparsing<2.4'``


Components
Expand Down
13 changes: 13 additions & 0 deletions Sming/Arch/Esp8266/Components/esp-open-lwip/esp-open-lwip.patch
Original file line number Diff line number Diff line change
Expand Up @@ -605,3 +605,16 @@ index bbb126a..4cd8840 100644
+void espconn_init(void)
{
}
diff --git a/lwip/core/tcp_out.c b/lwip/core/tcp_out.c
index e2f8e9a..8f4d170 100644
--- a/lwip/core/tcp_out.c
+++ b/lwip/core/tcp_out.c
@@ -448,7 +448,7 @@ tcp_write(struct tcp_pcb *pcb, const void *arg, u16_t len, u8_t apiflags)
if (oversize > 0) {
LWIP_ASSERT("inconsistent oversize vs. space", oversize_used <= space);
seg = last_unsent;
- oversize_used = oversize < len ? oversize : len;
+ oversize_used = LWIP_MIN(space, LWIP_MIN(oversize, len));
pos += oversize_used;
oversize -= oversize_used;
space -= oversize_used;
9 changes: 5 additions & 4 deletions Sming/Arch/Host/Components/driver/os_timer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,12 @@ void os_timer_disarm(struct os_timer_t* ptimer)

void os_timer_setfn(struct os_timer_t* ptimer, os_timer_func_t* pfunction, void* parg)
{
if(ptimer != nullptr) {
ptimer->timer_func = pfunction;
ptimer->timer_arg = parg;
ptimer->timer_next = reinterpret_cast<os_timer_t*>(-1);
if(ptimer == nullptr) {
return;
}
os_timer_disarm(ptimer);
ptimer->timer_func = pfunction;
ptimer->timer_arg = parg;
}

void os_timer_done(struct os_timer_t* ptimer)
Expand Down
9 changes: 5 additions & 4 deletions Sming/Arch/Rp2040/Components/driver/os_timer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -173,11 +173,12 @@ void IRAM_ATTR os_timer_disarm(struct os_timer_t* ptimer)

void os_timer_setfn(struct os_timer_t* ptimer, os_timer_func_t* pfunction, void* parg)
{
if(ptimer != nullptr) {
ptimer->timer_func = pfunction;
ptimer->timer_arg = parg;
ptimer->timer_next = reinterpret_cast<os_timer_t*>(-1);
if(ptimer == nullptr) {
return;
}
os_timer_disarm(ptimer);
ptimer->timer_func = pfunction;
ptimer->timer_arg = parg;
}

void os_timer_done(struct os_timer_t* ptimer)
Expand Down
2 changes: 1 addition & 1 deletion Sming/Arch/Rp2040/Components/driver/uart.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ void smg_uart_start_isr(smg_uart_t* uart)

if(smg_uart_rx_enabled(uart)) {
// Trigger at >= 7/8 full
fifo_level_select |= 5 << UART_UARTIFLS_RXIFLSEL_LSB;
fifo_level_select |= 4 << UART_UARTIFLS_RXIFLSEL_LSB;

/*
* There is little benefit in generating interrupts on errors, instead these
Expand Down
44 changes: 22 additions & 22 deletions Sming/Arch/Rp2040/Components/rp2040/cyw43-driver.patch
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
diff --git a/src/cyw43_ctrl.c b/src/cyw43_ctrl.c
index c6c2df6..753bfa8 100644
index edec1f3..de03c73 100644
--- a/src/cyw43_ctrl.c
+++ b/src/cyw43_ctrl.c
@@ -296,13 +296,17 @@ STATIC const char *const cyw43_async_event_name_table[89] = {
@@ -296,13 +296,17 @@ static const char *const cyw43_async_event_name_table[89] = {
[CYW43_EV_SET_SSID] = "SET_SSID",
[CYW43_EV_JOIN] = "JOIN",
[CYW43_EV_AUTH] = "AUTH",
Expand All @@ -21,11 +21,11 @@ index c6c2df6..753bfa8 100644
[CYW43_EV_ASSOC_REQ_IE] = "ASSOC_REQ_IE",
[CYW43_EV_ASSOC_RESP_IE] = "ASSOC_RESP_IE",
diff --git a/src/cyw43_ll.c b/src/cyw43_ll.c
index 7f4229b..f3bc641 100644
index 604335c..4aeb629 100644
--- a/src/cyw43_ll.c
+++ b/src/cyw43_ll.c
@@ -55,9 +55,6 @@ int sdio_transfer(uint32_t cmd, uint32_t arg, uint32_t *resp);
void sdio_enable_high_speed_4bit(void);
@@ -54,9 +54,6 @@
#include "cyw43_sdio.h"
#endif

-#define CYW43_FLASH_BLOCK_SIZE (512)
Expand All @@ -34,7 +34,7 @@ index 7f4229b..f3bc641 100644
struct pbuf;
uint16_t pbuf_copy_partial(const struct pbuf *p, void *dataptr, uint16_t len, uint16_t offset);

@@ -69,10 +66,6 @@ extern bool enable_spi_packet_dumping;
@@ -68,10 +65,6 @@ extern bool enable_spi_packet_dumping;

#define CYW43_RAM_SIZE (512 * 1024)

Expand All @@ -45,9 +45,9 @@ index 7f4229b..f3bc641 100644
#define VERIFY_FIRMWARE_DOWNLOAD (0)

#define ALIGN_UINT(val, align) (((val) + (align) - 1) & ~((align) - 1))
@@ -377,58 +370,31 @@ static int cyw43_read_backplane_mem(cyw43_int_t *self, uint32_t addr, uint32_t l
@@ -357,58 +350,31 @@ static void cyw43_write_backplane(cyw43_int_t *self, uint32_t addr, size_t size,
cyw43_set_backplane_window(self, CHIPCOMMON_BASE_ADDRESS);
}
#endif

-static int cyw43_download_resource(cyw43_int_t *self, uint32_t addr, size_t raw_len, int from_storage, uintptr_t source) {
- // round up len to simplify download
Expand All @@ -59,7 +59,7 @@ index 7f4229b..f3bc641 100644
- if (from_storage) {
- // reused the spid_buf to copy the data (must be larger than 512 storage block size)
- block_size = sizeof(self->spid_buf);
- CYW43_DEBUG("data comes from external storage via buffer of size %u\n", (uint)block_size);
- CYW43_DEBUG("data comes from external storage via buffer of size %u\n", (unsigned int)block_size);
+static uint32_t storage_get_chunksize()
+{
+ const uint32_t chunkTag = 0x4b4e4843; // "CHNK"
Expand Down Expand Up @@ -126,7 +126,7 @@ index 7f4229b..f3bc641 100644

#if VERIFY_FIRMWARE_DOWNLOAD
uint32_t t_start = cyw43_hal_ticks_us();
@@ -446,7 +412,7 @@ static int cyw43_download_resource(cyw43_int_t *self, uint32_t addr, size_t raw_
@@ -426,7 +392,7 @@ static int cyw43_download_resource(cyw43_int_t *self, uint32_t addr, size_t raw_
cyw43_set_backplane_window(self, dest_addr);
const uint8_t *src;
if (from_storage) {
Expand All @@ -135,7 +135,7 @@ index 7f4229b..f3bc641 100644
src = self->spid_buf;
} else {
src = (const uint8_t *)source + offset;
@@ -459,6 +425,10 @@ static int cyw43_download_resource(cyw43_int_t *self, uint32_t addr, size_t raw_
@@ -443,6 +409,10 @@ static int cyw43_download_resource(cyw43_int_t *self, uint32_t addr, size_t raw_
}

#if VERIFY_FIRMWARE_DOWNLOAD
Expand All @@ -145,8 +145,8 @@ index 7f4229b..f3bc641 100644
+ }
uint32_t t_end = cyw43_hal_ticks_us();
uint32_t dt = t_end - t_start;
CYW43_VDEBUG("done dnload; dt = %u us; speed = %u kbytes/sec\n", (uint)dt, (uint)(len * 1000 / dt));
@@ -480,7 +450,7 @@ static int cyw43_download_resource(cyw43_int_t *self, uint32_t addr, size_t raw_
CYW43_VDEBUG("done dnload; dt = %u us; speed = %u kbytes/sec\n", (unsigned int)dt, (unsigned int)(len * 1000 / dt));
@@ -464,7 +434,7 @@ static int cyw43_download_resource(cyw43_int_t *self, uint32_t addr, size_t raw_
cyw43_read_bytes(self, BACKPLANE_FUNCTION, dest_addr & BACKPLANE_ADDR_MASK, sz, buf);
const uint8_t *src;
if (from_storage) {
Expand All @@ -155,7 +155,7 @@ index 7f4229b..f3bc641 100644
src = self->spid_buf;
} else {
src = (const uint8_t *)source + offset;
@@ -1383,8 +1353,8 @@ void cyw43_ll_bus_sleep(cyw43_ll_t *self_in, bool can_sleep) {
@@ -1372,8 +1342,8 @@ void cyw43_ll_bus_sleep(cyw43_ll_t *self_in, bool can_sleep) {
#define CLM_CHUNK_LEN 1024 + 512
#endif

Expand All @@ -166,7 +166,7 @@ index 7f4229b..f3bc641 100644
uint8_t *buf = &self->spid_buf[SDPCM_HEADER_LEN + 16];

const size_t clm_dload_chunk_len = CLM_CHUNK_LEN;
@@ -1409,7 +1379,7 @@ static void cyw43_clm_load(cyw43_int_t *self, const uint8_t *clm_ptr, size_t clm
@@ -1398,7 +1368,7 @@ static void cyw43_clm_load(cyw43_int_t *self, const uint8_t *clm_ptr, size_t clm
*(uint32_t *)(buf + 12) = len;
*(uint32_t *)(buf + 16) = 0;
#pragma GCC diagnostic pop
Expand All @@ -175,7 +175,7 @@ index 7f4229b..f3bc641 100644

CYW43_VDEBUG("clm data send %lu/%zu\n", off + len, clm_len);

@@ -1665,12 +1635,9 @@ alp_set:
@@ -1654,12 +1624,9 @@ alp_set:
cyw43_write_backplane(self, SOCSRAM_BANKX_INDEX, 4, 0x3);
cyw43_write_backplane(self, SOCSRAM_BANKX_PDA, 4, 0);

Expand All @@ -190,7 +190,7 @@ index 7f4229b..f3bc641 100644

size_t wifi_nvram_len = ALIGN_UINT(sizeof(wifi_nvram_4343), 64);
const uint8_t *wifi_nvram_data = wifi_nvram_4343;
@@ -1787,9 +1754,11 @@ f2_ready:
@@ -1776,9 +1743,11 @@ f2_ready:

// Load the CLM data; it sits just after main firmware
CYW43_VDEBUG("cyw43_clm_load start\n");
Expand All @@ -203,7 +203,7 @@ index 7f4229b..f3bc641 100644
cyw43_write_iovar_u32(self, "bus:txglom", 0, WWD_STA_INTERFACE); // tx glomming off
cyw43_write_iovar_u32(self, "apsta", 1, WWD_STA_INTERFACE); // apsta on

@@ -1893,6 +1862,10 @@ int cyw43_ll_wifi_on(cyw43_ll_t *self_in, uint32_t country) {
@@ -1882,6 +1851,10 @@ int cyw43_ll_wifi_on(cyw43_ll_t *self_in, uint32_t country) {
cyw43_delay_ms(50);

#ifndef NDEBUG
Expand All @@ -214,7 +214,7 @@ index 7f4229b..f3bc641 100644
// Get and print CLM version
memcpy(buf, "clmver\x00", 7);
cyw43_do_ioctl(self, SDPCM_GET, WLC_GET_VAR, 128, buf, WWD_STA_INTERFACE);
@@ -1922,8 +1895,8 @@ int cyw43_ll_wifi_on(cyw43_ll_t *self_in, uint32_t country) {
@@ -1911,8 +1884,8 @@ int cyw43_ll_wifi_on(cyw43_ll_t *self_in, uint32_t country) {
CLR_EV(buf, 19); // roam attempt occurred
CLR_EV(buf, 20); // tx fail
CLR_EV(buf, 40); // radio
Expand All @@ -225,10 +225,10 @@ index 7f4229b..f3bc641 100644
#undef CLR_EV
memcpy(buf, "bsscfg:event_msgs", 18);
diff --git a/src/cyw43_ll.h b/src/cyw43_ll.h
index cf442db..a7ad227 100644
index 2750238..c281093 100644
--- a/src/cyw43_ll.h
+++ b/src/cyw43_ll.h
@@ -65,15 +65,19 @@
@@ -67,15 +67,19 @@
#define CYW43_EV_SET_SSID (0)
#define CYW43_EV_JOIN (1)
#define CYW43_EV_AUTH (3)
Expand All @@ -248,7 +248,7 @@ index cf442db..a7ad227 100644
#define CYW43_EV_CSA_COMPLETE_IND (80)
#define CYW43_EV_ASSOC_REQ_IE (87)
#define CYW43_EV_ASSOC_RESP_IE (88)
@@ -312,6 +316,11 @@ uint32_t cyw43_ll_read_backplane_reg(cyw43_ll_t *self_in, uint32_t addr);
@@ -318,6 +322,11 @@ uint32_t cyw43_ll_read_backplane_reg(cyw43_ll_t *self_in, uint32_t addr);
int cyw43_ll_write_backplane_mem(cyw43_ll_t *self_in, uint32_t addr, uint32_t len, const uint8_t *buf);
int cyw43_ll_read_backplane_mem(cyw43_ll_t *self_in, uint32_t addr, uint32_t len, uint8_t *buf);

Expand Down
2 changes: 1 addition & 1 deletion Sming/Arch/Rp2040/Components/rp2040/pico-sdk
Submodule pico-sdk updated 57 files
+1 −2 .github/workflows/macOS.yml
+1 −1 CONTRIBUTING.md
+2 −1 docs/index.h
+1 −1 docs/mainpage.md
+1 −1 lib/btstack
+1 −1 lib/cyw43-driver
+1 −1 pico_sdk_version.cmake
+1 −1 src/board_setup.cmake
+1 −1 src/boards/generic_board.cmake
+1 −1 src/boards/include/boards/adafruit_itsybitsy_rp2040.h
+3 −2 src/boards/include/boards/pico.h
+8 −3 src/boards/include/boards/pico_w.h
+1 −0 src/common/pico_base/include/pico/error.h
+1 −1 src/common/pico_time/time.c
+16,526 −16,512 src/rp2040/hardware_regs/rp2040.svd
+1 −0 src/rp2_common/CMakeLists.txt
+1 −1 src/rp2_common/boot_stage2/boot2_is25lp080.S
+3 −3 src/rp2_common/hardware_divider/include/hardware/divider.h
+12 −0 src/rp2_common/hardware_dma/dma.c
+19 −0 src/rp2_common/hardware_dma/include/hardware/dma.h
+1 −1 src/rp2_common/hardware_gpio/include/hardware/gpio.h
+11 −9 src/rp2_common/hardware_sync/include/hardware/sync.h
+43 −27 src/rp2_common/hardware_uart/include/hardware/uart.h
+102 −8 src/rp2_common/hardware_uart/uart.c
+2 −1 src/rp2_common/pico_async_context/async_context_threadsafe_background.c
+4 −0 src/rp2_common/pico_async_context/include/pico/async_context.h
+1 −1 src/rp2_common/pico_async_context/include/pico/async_context_freertos.h
+1 −1 src/rp2_common/pico_bootrom/include/pico/bootrom.h
+4 −1 src/rp2_common/pico_btstack/CMakeLists.txt
+50 −17 src/rp2_common/pico_btstack/btstack_flash_bank.c
+18 −1 src/rp2_common/pico_cyw43_arch/cyw43_arch.c
+2 −1 src/rp2_common/pico_cyw43_arch/cyw43_arch_poll.c
+18 −1 src/rp2_common/pico_cyw43_arch/include/pico/cyw43_arch.h
+20 −18 src/rp2_common/pico_cyw43_driver/cybt_shared_bus/cybt_shared_bus_driver.c
+19 −16 src/rp2_common/pico_cyw43_driver/cyw43_bus_pio_spi.c
+12 −0 src/rp2_common/pico_flash/CMakeLists.txt
+221 −0 src/rp2_common/pico_flash/flash.c
+142 −0 src/rp2_common/pico_flash/include/pico/flash.h
+1 −1 src/rp2_common/pico_lwip/CMakeLists.txt
+12 −0 src/rp2_common/pico_multicore/include/pico/multicore.h
+16 −3 src/rp2_common/pico_multicore/multicore.c
+18 −5 src/rp2_common/pico_platform/include/pico/platform.h
+3 −5 src/rp2_common/pico_standard_link/CMakeLists.txt
+20 −4 src/rp2_common/pico_standard_link/crt0.S
+2 −2 src/rp2_common/pico_standard_link/memmap_blocked_ram.ld
+2 −2 src/rp2_common/pico_standard_link/memmap_copy_to_ram.ld
+2 −2 src/rp2_common/pico_standard_link/memmap_default.ld
+2 −2 src/rp2_common/pico_standard_link/memmap_no_flash.ld
+9 −3 src/rp2_common/pico_stdio_usb/stdio_usb_descriptors.c
+16 −0 src/rp2_common/pico_stdlib/stdlib.c
+1 −0 test/kitchen_sink/CMakeLists.txt
+1 −0 test/kitchen_sink/kitchen_sink.c
+14 −9 tools/CMakeLists.txt
+1 −1 tools/elf2uf2/CMakeLists.txt
+1 −1 tools/pioasm/CMakeLists.txt
+0 −1 tools/pioasm/pio_disassembler.cpp
+1 −0 tools/pioasm/pio_disassembler.h
8 changes: 1 addition & 7 deletions Sming/Arch/Rp2040/Components/rp2040/pico-sdk.patch
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
diff --git a/lib/cyw43-driver b/lib/cyw43-driver
--- a/lib/cyw43-driver
+++ b/lib/cyw43-driver
@@ -1 +1 @@
-Subproject commit 9bfca61173a94432839cd39210f1d1afdf602c42
+Subproject commit 9bfca61173a94432839cd39210f1d1afdf602c42-dirty
diff --git a/src/common/pico_util/queue.c b/src/common/pico_util/queue.c
index a5c8e18..c3b8a91 100644
--- a/src/common/pico_util/queue.c
Expand Down Expand Up @@ -50,7 +44,7 @@ index 8e92d8b..da5feac 100644
/*! \brief Atomically set the specified bits to 1 in a HW register
* \ingroup hardware_base
diff --git a/src/rp2_common/pico_standard_link/memmap_default.ld b/src/rp2_common/pico_standard_link/memmap_default.ld
index 638e994..3fb53cd 100644
index e85b327..cf826c6 100644
--- a/src/rp2_common/pico_standard_link/memmap_default.ld
+++ b/src/rp2_common/pico_standard_link/memmap_default.ld
@@ -231,7 +231,7 @@ SECTIONS
Expand Down
2 changes: 1 addition & 1 deletion Sming/Arch/Rp2040/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ If core 1 code attempts to access flash during these periods the system will har
Floating-point support requires use of routines in flash memory.
Integer operations should all be safe to use.

If unexplained crashes are occuring then check the build output files (in out/Rp2040/debug/build)
If unexplained crashes are occurring then check the build output files (in out/Rp2040/debug/build)
or use a debugger to identify any errant code running from flash.

A typical use for core #1 might be to perform processing of some kind, such as processing data sampled
Expand Down
62 changes: 62 additions & 0 deletions Sming/Components/CommandProcessing/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
Command Processing
==================

.. highlight:: c++

Introduction
------------

Command handler provides a common command line interface (CLI). Command line must be text. Commands should be separated with a single character.
CLI can be used with:

- Serial
- Network (Websockets, Telnet)

and all communication protocols that are exchanging text data.

Commands can be added to and removed from the command handler. Each command will trigger a defined Delegate.

A welcome message may be shown when a user connects and end-of-line (EOL) character may be defined. An automatic "help" display is available.

For more examples take a look at the
:sample:`CommandLine`,
:sample:`TelnetServer`
and :sample:`HttpServer_WebSockets`
samples.


Using
-----

1. Add these lines to your application componenent.mk file::

COMPONENT_DEPENDS += CommandProcessing

2. Add these lines to your application::

#include <CommandProcessing/Utils.h>

3. Basic example::

#include <CommandProcessing/Utils.h>

CommandProcessing::Handler commandHandler;
void processShutdownCommand(String commandLine, ReadWriteStream& commandOutput)
{
// ...
}

void init()
{
commandHandler.registerSystemCommands();
commandHandler.registerCommand(CommandProcessing::Command("shutdown", "Shutdown Server Command", "Application", processShutdownCommand));
}

API Documentation
-----------------

.. doxygengroup:: commandhandler
:content-only:
:members:

10 changes: 10 additions & 0 deletions Sming/Components/CommandProcessing/component.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
COMPONENT_SRCDIRS := \
src \
$(call ListAllSubDirs,$(COMPONENT_PATH)/src) \

COMPONENT_INCDIRS := $(COMPONENT_SRCDIRS)

COMPONENT_DOXYGEN_INPUT := src

COMPONENT_DOCFILES := \
docs/*
Empty file.
File renamed without changes.
File renamed without changes.
Loading

0 comments on commit e3846d1

Please sign in to comment.