diff --git a/README.md b/README.md index 5bd3e7d19a..6d5bf49f3b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Sming -Sming is an asynchronous embedded C/C++ framework with superb performance and multiple network features. +Sming is an asynchronous embedded C++ framework with superb performance and multiple network features. Sming is [open source](LICENSE), modular and supports [multiple architectures](https://sming.readthedocs.io/en/latest/features.html) including ESP8266, ESP32 and RP2040. [![Examples](https://github.com/SmingHub/Sming/wiki/images/small/combine.png)](https://github.com/SmingHub/Sming/wiki/examples) @@ -42,20 +42,21 @@ The purpose of Sming is to simplify the creation of embedded applications. The d To follow the latest development you will need to clone our `develop` branch: -``` +```bash git clone https://github.com/SmingHub/Sming.git ``` ## Examples -The examples are a great way to learn the API and brush up your C/C++ knowledge. -Once you have completed the installation of the development tools, you can get the latest source code. -``` +The examples are a great way to learn the API and brush up your C++ knowledge. +Once you have completed the installation of the development tools, you can get the latest source code: + +```bash git clone https://github.com/SmingHub/Sming.git ``` -And check some of the examples. +And check some of the examples: - [Basic Blink](#basic-blink) - [Simple GPIO input/output](#simple-gpio-inputoutput) @@ -68,9 +69,10 @@ And check some of the examples. - [Email Client](#email-client) ### Basic Blink + Blinking is something like the "Hello World" example for the embedded world. You can check it using the commands below: -``` +```bash cd Sming/samples cd Basic_Blink make # -- compiles the application @@ -80,6 +82,7 @@ make flash # -- tries to upload the application to your ESP8266 device. More information at **[Sample Projects](https://sming.readthedocs.io/en/latest/samples.html)** page. ### Simple GPIO Input/Output + ```c++ #define LED_PIN 2 // GPIO2 ... @@ -90,18 +93,21 @@ digitalWrite(LED_PIN, HIGH); For a complete example take a look at the [Basic_Blink](samples/Basic_Blink/app/application.cpp) sample. ### Start Serial Communication + ```c++ Serial.begin(9600); Serial.println("Hello Sming! Let's do smart things."); ``` ### Connect to WiFi + ```c++ WifiStation.enable(true); WifiStation.config("LOCAL-NETWORK", "123456789087"); // Put your SSID and password here ``` ### Read DHT22 sensor + ```c++ #include // This is just a popular Arduino library! @@ -110,16 +116,17 @@ DHTesp dht; void init() { -  dht.setup(DHT_PIN, DHTesp::DHT22); + dht.setup(DHT_PIN, DHTesp::DHT22); -  float h = dht.getHumidity(); -  float t = dht.getTemperature(); + float h = dht.getHumidity(); + float t = dht.getTemperature(); } ``` Take a look at the code of the [Humidity_DHT22](samples/Humidity_DHT22/app/application.cpp) sample. ### HTTP Client + ```c++ HttpClient thingSpeak; ... @@ -127,18 +134,19 @@ thingSpeak.downloadString("http://api.thingspeak.com/update?key=XXXXXXX&field1=" void onDataSent(HttpClient& client, bool successful) { -  if (successful) { -    Serial.println("Successful!"); -  } -  else { -    Serial.println("Failed"); -  } + if (successful) { + Serial.println("Successful!"); + } + else { + Serial.println("Failed"); + } } ``` For more examples take a look at the [HttpClient](samples/HttpClient/app/application.cpp), [HttpClient_Instapush](samples/HttpClient_Instapush/app/application.cpp) and [HttpClient_ThingSpeak](samples/HttpClient_ThingSpeak/app/application.cpp) samples. ### OTA Application Update + ```c++ void doUpgrade() { @@ -151,20 +159,21 @@ void doUpgrade() // select rom partition to flash auto part = ota.getNextBootPartition(); -  // The content located on ROM_0_URL will be stored to the new partition -  otaUpdater->addItem(ROM_0_URL, part); + // The content located on ROM_0_URL will be stored to the new partition + otaUpdater->addItem(ROM_0_URL, part); -  // and/or set a callback (called on failure or success without switching requested) -  otaUpdater->setCallback(upgradeCallback); + // and/or set a callback (called on failure or success without switching requested) + otaUpdater->setCallback(upgradeCallback); -  // start update -  otaUpdater->start(); + // start update + otaUpdater->start(); } ``` For a complete example take a look at the [Basic_Ota](samples/Basic_Ota/app/application.cpp) sample. ### HTTP Server + ```c++ server.listen(80); server.paths.set("/", onIndex); @@ -178,28 +187,29 @@ Serial.println(WifiStation.getIP()); void onIndex(HttpRequest &request, HttpResponse &response) { -  TemplateFileStream *tmpl = new TemplateFileStream("index.html"); -  auto &vars = tmpl->variables(); -  vars["counter"] = String(counter); -  vars["IP"] = WifiStation.getIP().toString(); -  vars["MAC"] = WifiStation.getMAC(); -  response.sendTemplate(tmpl); + TemplateFileStream *tmpl = new TemplateFileStream("index.html"); + auto &vars = tmpl->variables(); + vars["counter"] = String(counter); + vars["IP"] = WifiStation.getIP().toString(); + vars["MAC"] = WifiStation.getMAC(); + response.sendTemplate(tmpl); } void onFile(HttpRequest &request, HttpResponse &response) { -  String file = request.getPath(); -  if (file[0] == '/') -    file = file.substring(1); + String file = request.getPath(); + if (file[0] == '/') + file = file.substring(1); -  response.setCache(86400, true); -  response.sendFile(file); + response.setCache(86400, true); + response.sendFile(file); } ``` For more examples take a look at the [HttpServer_ConfigNetwork](samples/HttpServer_ConfigNetwork/app/application.cpp), [HttpServer_Bootstrap](samples/HttpServer_Bootstrap/app/application.cpp), [HttpServer_WebSockets](samples/HttpServer_WebSockets/app/application.cpp) and [HttpServer_AJAX](samples/HttpServer_AJAX/app/application.cpp) samples. ### Email Client + ```c++ SmtpClient emailClient; @@ -221,15 +231,15 @@ emailClient.send(mail); int onMailSent(SmtpClient& client, int code, char* status) { -    MailMessage* mail = client.getCurrentMessage(); + MailMessage* mail = client.getCurrentMessage(); -    ... + ... -    if(!client.countPending()) { -        client.quit(); -    } + if(!client.countPending()) { + client.quit(); + } -    return 0; + return 0; } ``` @@ -237,10 +247,11 @@ int onMailSent(SmtpClient& client, int code, char* status) See the [SmtpClient sample](samples/SmtpClient/app/application.cpp) for details. ## Live Debugging + Applications based on Sming Framework that are flashed and running on an ESP8266 device can be debugged using interactive debuggers. In order to debug an application it has to be re-compiled with the ENABLE_GDB=1 directive. And then flashed on the device. As shown below: -``` +```bash cd $SMING_HOME/../samples/LiveDebug make clean make ENABLE_GDB=1 @@ -248,7 +259,8 @@ make flashapp # <-- this will update only the application firmware. ``` Once the debuggable application is flashed on the device the developers have to run GDB. The easiest way to run the command-line GDB is to execute the following command: -``` + +```bash make gdb ``` @@ -260,7 +272,8 @@ See [LiveDebug sample](samples/LiveDebug/) for details. ## Contribute -You can contribute to Sming by +You can contribute to Sming by: + - Providing Pull Requests with new features, bug fixes, new ideas, etc. See [Contributing](https://smingdev.readthedocs.io/en/latest/contribute/index.html) for details. - Testing our latest source code and reporting issues. - Supporting us financially to acquire hardware for testing and implementing or out of gratitude @@ -276,8 +289,10 @@ In addition to that anyone who is helping this project can file an expense. If t #### Backers and sponsors Thank you to all the people who have backed Sming - + +backer or sponsored it. - + +sponsor diff --git a/Sming/Arch/Esp32/Components/driver/hw_timer.rst b/Sming/Arch/Esp32/Components/driver/hw_timer.rst index 14fae3de0f..979e853f93 100644 --- a/Sming/Arch/Esp32/Components/driver/hw_timer.rst +++ b/Sming/Arch/Esp32/Components/driver/hw_timer.rst @@ -3,25 +3,6 @@ hw_timer: Hardware Timers Driver for hardware timers. -Variables ---------- - -.. envvar:: USE_US_TIMER - - 0 (default): Use default /256 prescale for Timer2 - 1: Use /16 prescale - - The following functions depend on Timer2: - - NOW() return value, the Timer2 tick count - - Software timers - - System time - - Software timers are driven by Timer2, which by default uses a /256 prescale - providing a resolution of 3.2us and a range of 1' 54". - - Enabling this setting increases the resolution to 200ns but reduces the maximum - software timer to 7" 9.5s. - API Documentation ----------------- diff --git a/Sming/Arch/Esp32/Components/driver/i2s.rst b/Sming/Arch/Esp32/Components/driver/i2s.rst index fc56ee73d7..4eb56bfc4a 100644 --- a/Sming/Arch/Esp32/Components/driver/i2s.rst +++ b/Sming/Arch/Esp32/Components/driver/i2s.rst @@ -1,64 +1,4 @@ I2S: Inter-IC Serial communications =================================== -Introduction ------------- - -`I2S `__ was designed for transfer of digital audio data. - -The ESP8266 has two I2S modules (one transmitter and one receiver), both with hardware -`DMA `__ support, which means transfers from -RAM to the hardware SPI FIFO can be handled directly in hardware without any CPU involvement. - - -Sming I2S support ------------------ - -The Sming driver deals with the complicated of setting up the hardware, using an API -similar to that in the Espressif RTOS SDK. In addition, DMA buffers may be accessed directly -to avoid double-buffering and the associated RAM and copy overhead. - - -Applications ------------- - -Audio -~~~~~ - -Playing MIDI files, MP3 files, speech synthesis, etc. is all possible using the ESP8266, -though many audio applications require considerable processing power. -That means you may need to disable WiFi and set the processor to run at full 160MHz speed. - -High-quality multi-channel audio requires an external I2S DAC, which is what the protocol -was designed for in the first place. You may find problems with insufficient RAM, -but you can always add external SPI RAM. - -More realistic uses include generating simple tones, beeps, playing pre-recorded WAV audio, -etc. to supplement existing projects. This can all be done in the background without -disrupting the system's main purpose, whatever that may be. - -For such applications you can generate single-channel audio via the I2S OUT pin, -using `Pulse-density modulation `__. - -See the :library:`ToneGenerator` library for a demonstration of this. - - -GPIO Expansion -~~~~~~~~~~~~~~ - -Expand GPIO using low-cost shift registers. https://github.com/lhartmann/esp8266_reprap. - - -Pixel-strip control -~~~~~~~~~~~~~~~~~~~ - -Devices such as WS2812-based NeoPixels use a simple, single-wire protocol. -I2S is ideal for this as it can be used to generate a precisely-timed bitstream -with very low CPU loading. - - -API Documentation ------------------ - -.. doxygengroup:: i2s_driver - :content-only: +Not currently implemented for Esp32. diff --git a/Sming/Arch/Esp32/Components/gdbstub/README.rst b/Sming/Arch/Esp32/Components/gdbstub/README.rst index fc316ca478..9c0c4b7c7a 100644 --- a/Sming/Arch/Esp32/Components/gdbstub/README.rst +++ b/Sming/Arch/Esp32/Components/gdbstub/README.rst @@ -3,6 +3,4 @@ GDB Stub for Esp32 This defines the command line to use when ``make gdb`` is run. -Esp32 debugging is handled via JTAG interface. - -No additional code is required as serial debugging is not (currently) implemented. +See :doc:`/debugging/esp32/index`. diff --git a/Sming/Arch/Esp32/Components/heap/README.rst b/Sming/Arch/Esp32/Components/heap/README.rst index a8ea0dac75..ce07f0d8f0 100644 --- a/Sming/Arch/Esp32/Components/heap/README.rst +++ b/Sming/Arch/Esp32/Components/heap/README.rst @@ -1,12 +1,4 @@ -Heap -==== +Esp32 Heap +========== -This Component implements heap-related housekeeping functions. Heap usage is tracked using :component:`malloc_count`. -This also provides some validation (using *sentinels* to detect if memory blocks are overwritten). - -.. envvar:: ENABLE_MALLOC_COUNT - - We require :component:`malloc_count` to keep track of heap usage for system_get_free_heap_size(). - It does this by hooking the memory allocation routines (malloc, free, etc.). - If you wish to disable this behaviour, set `ENABLE_MALLOC_COUNT=0`. - If using tools such as `Valgrind `__, this will provide a cleaner trace. +This Component supplements the actual heap implementation provided by the ESP IDF SDK. diff --git a/Sming/Arch/Esp32/Components/sming-arch/README.rst b/Sming/Arch/Esp32/Components/sming-arch/README.rst index 0b6d606f73..e91d1c0038 100644 --- a/Sming/Arch/Esp32/Components/sming-arch/README.rst +++ b/Sming/Arch/Esp32/Components/sming-arch/README.rst @@ -3,16 +3,3 @@ Sming (Esp32) This Component builds a library containing architecture-specific code, and defines dependencies for Sming to build for the Esp32. -Interactive debugging on the device ------------------------------------ - -.. envvar:: ENABLE_GDB - - In order to be able to debug live directly on the ESP8266 microcontroller you - should re-compile your application with ``ENABLE_GDB=1`` directive. - - undefined (default) - Compile normally - 1 - Compile with debugging support provided by :component-esp8266:`gdbstub`. - See also the :sample:`LiveDebug` sample. diff --git a/Sming/Arch/Esp32/Components/spi_flash/README.rst b/Sming/Arch/Esp32/Components/spi_flash/README.rst index 31b49e646b..56e9495129 100644 --- a/Sming/Arch/Esp32/Components/spi_flash/README.rst +++ b/Sming/Arch/Esp32/Components/spi_flash/README.rst @@ -1,4 +1,4 @@ -Esp8266 SPI Flash Support +Esp32 SPI Flash Support ========================= Provides functions for access to flash memory. diff --git a/Sming/Arch/Esp32/README.rst b/Sming/Arch/Esp32/README.rst index 431f15967e..da97dc290f 100644 --- a/Sming/Arch/Esp32/README.rst +++ b/Sming/Arch/Esp32/README.rst @@ -6,13 +6,21 @@ Sming Esp32 Architecture Support building Sming for the Esp32 architecture. -Build variables ---------------- +Configuration Variables +----------------------- .. envvar:: IDF_PATH - This contains the base directory for the ESP-IDF toolchain used to build the framework. This variable is required and must be set accordingly. + Required. The full path to the ESP-IDF framework. + The standard location for this is ``/opt/esp-idf`` or ``C:\tools\esp-idf``, + which is a link to the versioned directory such as ``/opt/esp-idf-5.2``. + You can switch between installed versions by changing the link, + or by changing IDF_PATH. + +.. envvar:: IDF_TOOLS_PATH + + Required. The full path to the Esp32 tools directory, such as ``/opt/esp32``. .. envvar:: SDK_CUSTOM_CONFIG @@ -43,11 +51,15 @@ Building Make sure that the :envvar:`IDF_PATH` is set. Also make sure that the other ESP-IDF environmental variables are set. -In Linux this can be done using the following command:: +In Linux/MacOS this can be done using the following command:: source $SMING_HOME/Tools/export.sh -Build the framework and application as usual, specifying :envvar:`SMING_ARCH` =Esp32. For example:: +For Windows:: + + $SMING_HOME\Tools\export + +Build the framework and application as usual, specifying :envvar:`SMING_ARCH=Esp32 `. For example:: cd $SMING_HOME/../samples/Basic_Serial make SMING_ARCH=Esp32 @@ -63,15 +75,15 @@ SDK Sming comes with pre-compiled libraries and configuration files. If needed you can re-configure ESP-IDF using the command below:: - make SMING_ARCH=Esp32 sdk-menuconfig + make sdk-menuconfig -A re-compilation is required after the change of the configuration. This can be done with the following command:: +A re-compilation is required after the change of the configuration thus:: - make SMING_ARCH=Esp32 Sming-build all + make Sming-build all -If you want to revert to using the default SDK settings then issue the following command:: +If you want to revert to using the default SDK settings:: - make SMING_ARCH=Esp32 sdk-config-clean + make sdk-config-clean You can also configure per-project custom settings via :envvar:`SDK_CUSTOM_CONFIG`. @@ -79,24 +91,22 @@ You can also configure per-project custom settings via :envvar:`SDK_CUSTOM_CONFI SoC variants ------------ -Sming leverages the `ESP IDF HAL `__ +Sming leverages the `ESP IDF HAL `__ to support multiple processor variants. -This is still at an early stage of development however basic applications should build for the following variants: +A family of SoCs is supported, currently:: -- esp32 (default) +- esp32 - esp32s2 - esp32c3 - esp32s3 - esp32c2 -You can change variants like this: +You can change variants like this:: -``` -make SMING_SOC=esp32c3 -``` + make SMING_SOC=esp32c3 -Each variant uses a different build directory, e.g. ``out/Esp32/esp32c3/...`` to avoid conflicts. +Each variant uses a different build directory, e.g. ``out/Esp32/esp32c3/...``. See :component-esp32:`esp32` for further details. @@ -107,23 +117,23 @@ IDF versions ------------ Sming currently supports IDF versions 4.3, 4.4, 5.0 and 5.2. +The recommended version is 5.2. +This is installed by default. -The default installed IDF version is 5.2. This can be changed as follows:: +A different version can be installed if necessary:: INSTALL_IDF_VER=4.4 $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. -After switching versions, run `make clean components-clean` before re-compiling. - -.. note:: +After switching versions, run a full clean before re-compiling. +This must include SDK configuration:: - 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. + make sdk-config-clean clean components-clean - 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'`` +See `ESP-IDF Versions `__ +for the IDF release schedule. Components diff --git a/Sming/Arch/Esp32/esp32-pindefs.txt b/Sming/Arch/Esp32/esp32-pindefs.txt index aeaa4b2bb0..5c809fe882 100644 --- a/Sming/Arch/Esp32/esp32-pindefs.txt +++ b/Sming/Arch/Esp32/esp32-pindefs.txt @@ -47,10 +47,10 @@ rtc gpio pad a0 a1 a2 f0 f1 notes 7 26 GPIO26 DAC_2 ADC2_CH9 - RTC_GPIO7 - 8 33 32K_XN XTAL_32K_N ADC1_CH5 TOUCH8 RTC_GPIO8 - 9 32 32K_XP XTAL_32K_P ADC1_CH4 TOUCH9 RTC_GPIO9 - -10 4 GPIO4 - ADC2_CH0 TOUCH0 RTC_GPIO10 I2C_SCL ∗ -11 0 GPIO0 - ADC2_CH1 TOUCH1 RTC_GPIO11 I2C_SDA ∗ -12 2 GPIO2 - ADC2_CH2 TOUCH2 RTC_GPIO12 I2C_SCL ∗ -13 15 MTDO - ADC2_CH3 TOUCH3 RTC_GPIO13 I2C_SDA ∗ +10 4 GPIO4 - ADC2_CH0 TOUCH0 RTC_GPIO10 I2C_SCL - +11 0 GPIO0 - ADC2_CH1 TOUCH1 RTC_GPIO11 I2C_SDA - +12 2 GPIO2 - ADC2_CH2 TOUCH2 RTC_GPIO12 I2C_SCL - +13 15 MTDO - ADC2_CH3 TOUCH3 RTC_GPIO13 I2C_SDA - 14 13 MTCK - ADC2_CH4 TOUCH4 RTC_GPIO14 - 15 12 MTDI - ADC2_CH5 TOUCH5 RTC_GPIO15 - 16 14 MTMS - ADC2_CH6 TOUCH6 RTC_GPIO16 - @@ -72,46 +72,46 @@ signal input default same output enable 11 HSPICS0_in 0 yes HSPICS0_out HSPICS0_oe 12 HSPIHD_in 0 yes HSPIHD_out HSPIHD_oe 13 HSPIWP_in 0 yes HSPIWP_out HSPIWP_oe -14 U0RXD_in 0 yes U0TXD_out 1’d1 -15 U0CTS_in 0 yes U0RTS_out 1’d1 -16 U0DSR_in 0 no U0DTR_out 1’d1 -17 U1RXD_in 0 yes U1TXD_out 1’d1 -18 U1CTS_in 0 yes U1RTS_out 1’d1 -23 I2S0O_BCK_in 0 no I2S0O_BCK_out 1’d1 -24 I2S1O_BCK_in 0 no I2S1O_BCK_out 1’d1 -25 I2S0O_WS_in 0 no I2S0O_WS_out 1’d1 -26 I2S1O_WS_in 0 no I2S1O_WS_out 1’d1 -27 I2S0I_BCK_in 0 no I2S0I_BCK_out 1’d1 -28 I2S0I_WS_in 0 no I2S0I_WS_out 1’d1 -29 I2CEXT0_SCL_in 1 no I2CEXT0_SCL_out 1’d1 -30 I2CEXT0_SDA_in 1 no I2CEXT0_SDA_out 1’d1 -31 pwm0_sync0_in 0 no sdio_tohost_int_out 1’d1 -32 pwm0_sync1_in 0 no pwm0_out0a 1’d1 -33 pwm0_sync2_in 0 no pwm0_out0b 1’d1 -34 pwm0_f0_in 0 no pwm0_out1a 1’d1 -35 pwm0_f1_in 0 no pwm0_out1b 1’d1 -36 pwm0_f2_in 0 no pwm0_out2a 1’d1 -37 - 0 no pwm0_out2b 1’d1 -39 pcnt_sig_ch0_in0 0 no - 1’d1 -40 pcnt_sig_ch1_in0 0 no - 1’d1 -41 pcnt_ctrl_ch0_in0 0 no - 1’d1 -42 pcnt_ctrl_ch1_in0 0 no - 1’d1 -43 pcnt_sig_ch0_in1 0 no - 1’d1 -44 pcnt_sig_ch1_in1 0 no - 1’d1 -45 pcnt_ctrl_ch0_in1 0 no - 1’d1 -46 pcnt_ctrl_ch1_in1 0 no - 1’d1 -47 pcnt_sig_ch0_in2 0 no - 1’d1 -48 pcnt_sig_ch1_in2 0 no - 1’d1 -49 pcnt_ctrl_ch0_in2 0 no - 1’d1 -50 pcnt_ctrl_ch1_in2 0 no - 1’d1 -51 pcnt_sig_ch0_in3 0 no - 1’d1 -52 pcnt_sig_ch1_in3 0 no - 1’d1 -53 pcnt_ctrl_ch0_in3 0 no - 1’d1 -54 pcnt_ctrl_ch1_in3 0 no - 1’d1 -55 pcnt_sig_ch0_in4 0 no - 1’d1 -56 pcnt_sig_ch1_in4 0 no - 1’d1 -57 pcnt_ctrl_ch0_in4 0 no - 1’d1 -58 pcnt_ctrl_ch1_in4 0 no - 1’d1 +14 U0RXD_in 0 yes U0TXD_out 1'd1 +15 U0CTS_in 0 yes U0RTS_out 1'd1 +16 U0DSR_in 0 no U0DTR_out 1'd1 +17 U1RXD_in 0 yes U1TXD_out 1'd1 +18 U1CTS_in 0 yes U1RTS_out 1'd1 +23 I2S0O_BCK_in 0 no I2S0O_BCK_out 1'd1 +24 I2S1O_BCK_in 0 no I2S1O_BCK_out 1'd1 +25 I2S0O_WS_in 0 no I2S0O_WS_out 1'd1 +26 I2S1O_WS_in 0 no I2S1O_WS_out 1'd1 +27 I2S0I_BCK_in 0 no I2S0I_BCK_out 1'd1 +28 I2S0I_WS_in 0 no I2S0I_WS_out 1'd1 +29 I2CEXT0_SCL_in 1 no I2CEXT0_SCL_out 1'd1 +30 I2CEXT0_SDA_in 1 no I2CEXT0_SDA_out 1'd1 +31 pwm0_sync0_in 0 no sdio_tohost_int_out 1'd1 +32 pwm0_sync1_in 0 no pwm0_out0a 1'd1 +33 pwm0_sync2_in 0 no pwm0_out0b 1'd1 +34 pwm0_f0_in 0 no pwm0_out1a 1'd1 +35 pwm0_f1_in 0 no pwm0_out1b 1'd1 +36 pwm0_f2_in 0 no pwm0_out2a 1'd1 +37 - 0 no pwm0_out2b 1'd1 +39 pcnt_sig_ch0_in0 0 no - 1'd1 +40 pcnt_sig_ch1_in0 0 no - 1'd1 +41 pcnt_ctrl_ch0_in0 0 no - 1'd1 +42 pcnt_ctrl_ch1_in0 0 no - 1'd1 +43 pcnt_sig_ch0_in1 0 no - 1'd1 +44 pcnt_sig_ch1_in1 0 no - 1'd1 +45 pcnt_ctrl_ch0_in1 0 no - 1'd1 +46 pcnt_ctrl_ch1_in1 0 no - 1'd1 +47 pcnt_sig_ch0_in2 0 no - 1'd1 +48 pcnt_sig_ch1_in2 0 no - 1'd1 +49 pcnt_ctrl_ch0_in2 0 no - 1'd1 +50 pcnt_ctrl_ch1_in2 0 no - 1'd1 +51 pcnt_sig_ch0_in3 0 no - 1'd1 +52 pcnt_sig_ch1_in3 0 no - 1'd1 +53 pcnt_ctrl_ch0_in3 0 no - 1'd1 +54 pcnt_ctrl_ch1_in3 0 no - 1'd1 +55 pcnt_sig_ch0_in4 0 no - 1'd1 +56 pcnt_sig_ch1_in4 0 no - 1'd1 +57 pcnt_ctrl_ch0_in4 0 no - 1'd1 +58 pcnt_ctrl_ch1_in4 0 no - 1'd1 61 HSPICS1_in 0 no HSPICS1_out HSPICS1_oe 62 HSPICS2_in 0 no HSPICS2_out HSPICS2_oe 63 VSPICLK_in 0 yes VSPICLK_out_mux VSPICLK_oe @@ -122,179 +122,179 @@ signal input default same output enable 68 VSPICS0_in 0 yes VSPICS0_out VSPICS0_oe 69 VSPICS1_in 0 no VSPICS1_out VSPICS1_oe 70 VSPICS2_in 0 no VSPICS2_out VSPICS2_oe -71 pcnt_sig_ch0_in5 0 no ledc_hs_sig_out0 1’d1 -72 pcnt_sig_ch1_in5 0 no ledc_hs_sig_out1 1’d1 -73 pcnt_ctrl_ch0_in5 0 no ledc_hs_sig_out2 1’d1 -74 pcnt_ctrl_ch1_in5 0 no ledc_hs_sig_out3 1’d1 -75 pcnt_sig_ch0_in6 0 no ledc_hs_sig_out4 1’d1 -76 pcnt_sig_ch1_in6 0 no ledc_hs_sig_out5 1’d1 -77 pcnt_ctrl_ch0_in6 0 no ledc_hs_sig_out6 1’d1 -78 pcnt_ctrl_ch1_in6 0 no ledc_hs_sig_out7 1’d1 -79 pcnt_sig_ch0_in7 0 no ledc_ls_sig_out0 1’d1 -80 pcnt_sig_ch1_in7 0 no ledc_ls_sig_out1 1’d1 -81 pcnt_ctrl_ch0_in7 0 no ledc_ls_sig_out2 1’d1 -82 pcnt_ctrl_ch1_in7 0 no ledc_ls_sig_out3 1’d1 -83 rmt_sig_in0 0 no ledc_ls_sig_out4 1’d1 -84 rmt_sig_in1 0 no ledc_ls_sig_out5 1’d1 -85 rmt_sig_in2 0 no ledc_ls_sig_out6 1’d1 -86 rmt_sig_in3 0 no ledc_ls_sig_out7 1’d1 -87 rmt_sig_in4 0 no rmt_sig_out0 1’d1 -88 rmt_sig_in5 0 no rmt_sig_out1 1’d1 -89 rmt_sig_in6 0 no rmt_sig_out2 1’d1 -90 rmt_sig_in7 0 no rmt_sig_out3 1’d1 -91 - - - rmt_sig_out4 1’d1 -92 - - - rmt_sig_out6 1’d1 -94 twai_rx 1 no rmt_sig_out7 1’d1 -95 I2CEXT1_SCL_in 1 no I2CEXT1_SCL_out 1’d1 -96 I2CEXT1_SDA_in 1 no I2CEXT1_SDA_out 1’d1 -97 host_card_detect_n_1 0 no host_ccmd_od_pullup_en_n 1’d1 -98 host_card_detect_n_2 0 no host_rst_n_1 1’d1 -99 host_card_write_prt_1 0 no host_rst_n_2 1’d1 -100 host_card_write_prt_2 0 no gpio_sd0_out 1’d1 -101 host_card_int_n_1 0 no gpio_sd1_out 1’d1 -102 host_card_int_n_2 0 no gpio_sd2_out 1’d1 -103 pwm1_sync0_in 0 no gpio_sd3_out 1’d1 -104 pwm1_sync1_in 0 no gpio_sd4_out 1’d1 -105 pwm1_sync2_in 0 no gpio_sd5_out 1’d1 -106 pwm1_f0_in 0 no gpio_sd6_out 1’d1 -107 pwm1_f1_in 0 no gpio_sd7_out 1’d1 -108 pwm1_f2_in 0 no pwm1_out0a 1’d1 -109 pwm0_cap0_in 0 no pwm1_out0b 1’d1 -110 pwm0_cap1_in 0 no pwm1_out1a 1’d1 -111 pwm0_cap2_in 0 no pwm1_out1b 1’d1 -112 pwm1_cap0_in 0 no pwm1_out2a 1’d1 -113 pwm1_cap1_in 0 no pwm1_out2b 1’d1 -114 pwm1_cap2_in 0 no pwm2_out1h 1’d1 -115 pwm2_flta 1 no pwm2_out1l 1’d1 -116 pwm2_fltb 1 no pwm2_out2h 1’d1 -117 pwm2_cap1_in 0 no pwm2_out2l 1’d1 -118 pwm2_cap2_in 0 no pwm2_out3h 1’d1 -119 pwm2_cap3_in 0 no pwm2_out3l 1’d1 -120 pwm3_flta 1 no pwm2_out4h 1’d1 -121 pwm3_fltb 1 no pwm2_out4l 1’d1 -122 pwm3_cap1_in 0 no - 1’d1 -123 pwm3_cap2_in 0 no twai_tx 1’d1 -124 pwm3_cap3_in 0 no twai_bus_off_on 1’d1 -125 - - - twai_clkout 1’d1 -140 I2S0I_DATA_in0 0 no I2S0O_DATA_out0 1’d1 -141 I2S0I_DATA_in1 0 no I2S0O_DATA_out1 1’d1 -142 I2S0I_DATA_in2 0 no I2S0O_DATA_out2 1’d1 -143 I2S0I_DATA_in3 0 no I2S0O_DATA_out3 1’d1 -144 I2S0I_DATA_in4 0 no I2S0O_DATA_out4 1’d1 -145 I2S0I_DATA_in5 0 no I2S0O_DATA_out5 1’d1 -146 I2S0I_DATA_in6 0 no I2S0O_DATA_out6 1’d1 -147 I2S0I_DATA_in7 0 no I2S0O_DATA_out7 1’d1 -148 I2S0I_DATA_in8 0 no I2S0O_DATA_out8 1’d1 -149 I2S0I_DATA_in9 0 no I2S0O_DATA_out9 1’d1 -150 I2S0I_DATA_in10 0 no I2S0O_DATA_out10 1’d1 -151 I2S0I_DATA_in11 0 no I2S0O_DATA_out11 1’d1 -152 I2S0I_DATA_in12 0 no I2S0O_DATA_out12 1’d1 -153 I2S0I_DATA_in13 0 no I2S0O_DATA_out13 1’d1 -154 I2S0I_DATA_in14 0 no I2S0O_DATA_out14 1’d1 -155 I2S0I_DATA_in15 0 no I2S0O_DATA_out15 1’d1 -156 - - - I2S0O_DATA_out16 1’d1 -157 - - - I2S0O_DATA_out17 1’d1 -158 - - - I2S0O_DATA_out18 1’d1 -159 - - - I2S0O_DATA_out19 1’d1 -160 - - - I2S0O_DATA_out20 1’d1 -161 - - - I2S0O_DATA_out21 1’d1 -162 - - - I2S0O_DATA_out22 1’d1 -163 - - - I2S0O_DATA_out23 1’d1 -164 I2S1I_BCK_in 0 no I2S1I_BCK_out 1’d1 -165 I2S1I_WS_in 0 no I2S1I_WS_out 1’d1 -166 I2S1I_DATA_in0 0 no I2S1O_DATA_out0 1’d1 -167 I2S1I_DATA_in1 0 no I2S1O_DATA_out1 1’d1 -168 I2S1I_DATA_in2 0 no I2S1O_DATA_out2 1’d1 -169 I2S1I_DATA_in3 0 no I2S1O_DATA_out3 1’d1 -170 I2S1I_DATA_in4 0 no I2S1O_DATA_out4 1’d1 -171 I2S1I_DATA_in5 0 no I2S1O_DATA_out5 1’d1 -172 I2S1I_DATA_in6 0 no I2S1O_DATA_out6 1’d1 -173 I2S1I_DATA_in7 0 no I2S1O_DATA_out7 1’d1 -174 I2S1I_DATA_in8 0 no I2S1O_DATA_out8 1’d1 -175 I2S1I_DATA_in9 0 no I2S1O_DATA_out9 1’d1 -121 pwm3_fltb 1 no pwm2_out4l 1’d1 -122 pwm3_cap1_in 0 no - 1’d1 -123 pwm3_cap2_in 0 no twai_tx 1’d1 -124 pwm3_cap3_in 0 no twai_bus_off_on 1’d1 -125 - - - twai_clkout 1’d1 -140 I2S0I_DATA_in0 0 no I2S0O_DATA_out0 1’d1 -141 I2S0I_DATA_in1 0 no I2S0O_DATA_out1 1’d1 -142 I2S0I_DATA_in2 0 no I2S0O_DATA_out2 1’d1 -143 I2S0I_DATA_in3 0 no I2S0O_DATA_out3 1’d1 -144 I2S0I_DATA_in4 0 no I2S0O_DATA_out4 1’d1 -145 I2S0I_DATA_in5 0 no I2S0O_DATA_out5 1’d1 -146 I2S0I_DATA_in6 0 no I2S0O_DATA_out6 1’d1 -147 I2S0I_DATA_in7 0 no I2S0O_DATA_out7 1’d1 -148 I2S0I_DATA_in8 0 no I2S0O_DATA_out8 1’d1 -149 I2S0I_DATA_in9 0 no I2S0O_DATA_out9 1’d1 -150 I2S0I_DATA_in10 0 no I2S0O_DATA_out10 1’d1 -151 I2S0I_DATA_in11 0 no I2S0O_DATA_out11 1’d1 -152 I2S0I_DATA_in12 0 no I2S0O_DATA_out12 1’d1 -153 I2S0I_DATA_in13 0 no I2S0O_DATA_out13 1’d1 -154 I2S0I_DATA_in14 0 no I2S0O_DATA_out14 1’d1 -155 I2S0I_DATA_in15 0 no I2S0O_DATA_out15 1’d1 -156 - - - I2S0O_DATA_out16 1’d1 -157 - - - I2S0O_DATA_out17 1’d1 -158 - - - I2S0O_DATA_out18 1’d1 -159 - - - I2S0O_DATA_out19 1’d1 -160 - - - I2S0O_DATA_out20 1’d1 -161 - - - I2S0O_DATA_out21 1’d1 -162 - - - I2S0O_DATA_out22 1’d1 -163 - - - I2S0O_DATA_out23 1’d1 -164 I2S1I_BCK_in 0 no I2S1I_BCK_out 1’d1 -165 I2S1I_WS_in 0 no I2S1I_WS_out 1’d1 -166 I2S1I_DATA_in0 0 no I2S1O_DATA_out0 1’d1 -167 I2S1I_DATA_in1 0 no I2S1O_DATA_out1 1’d1 -168 I2S1I_DATA_in2 0 no I2S1O_DATA_out2 1’d1 -169 I2S1I_DATA_in3 0 no I2S1O_DATA_out3 1’d1 -170 I2S1I_DATA_in4 0 no I2S1O_DATA_out4 1’d1 -171 I2S1I_DATA_in5 0 no I2S1O_DATA_out5 1’d1 -172 I2S1I_DATA_in6 0 no I2S1O_DATA_out6 1’d1 -173 I2S1I_DATA_in7 0 no I2S1O_DATA_out7 1’d1 -174 I2S1I_DATA_in8 0 no I2S1O_DATA_out8 1’d1 -175 I2S1I_DATA_in9 0 no I2S1O_DATA_out9 1’d1 -176 I2S1I_DATA_in10 0 no I2S1O_DATA_out10 1’d1 -177 I2S1I_DATA_in11 0 no I2S1O_DATA_out11 1’d1 -178 I2S1I_DATA_in12 0 no I2S1O_DATA_out12 1’d1 -179 I2S1I_DATA_in13 0 no I2S1O_DATA_out13 1’d1 -180 I2S1I_DATA_in14 0 no I2S1O_DATA_out14 1’d1 -181 I2S1I_DATA_in15 0 no I2S1O_DATA_out15 1’d1 -182 - - - I2S1O_DATA_out16 1’d1 -183 - - - I2S1O_DATA_out17 1’d1 -184 - - - I2S1O_DATA_out18 1’d1 -185 - - - I2S1O_DATA_out19 1’d1 -186 - - - I2S1O_DATA_out20 1’d1 -187 - - - I2S1O_DATA_out21 1’d1 -188 - - - I2S1O_DATA_out22 1’d1 -189 - - - I2S1O_DATA_out23 1’d1 -190 I2S0I_H_SYNC 0 no pwm3_out1h 1’d1 -191 I2S0I_V_SYNC 0 no pwm3_out1l 1’d1 -192 I2S0I_H_ENABLE 0 no pwm3_out2h 1’d1 -193 I2S1I_H_SYNC 0 no pwm3_out2l 1’d1 -194 I2S1I_V_SYNC 0 no pwm3_out3h 1’d1 -195 I2S1I_H_ENABLE 0 no pwm3_out3l 1’d1 -196 - - - pwm3_out4h 1’d1 -197 - - - pwm3_out4l 1’d1 -198 U2RXD_in 0 yes U2TXD_out 1’d1 -199 U2CTS_in 0 yes U2RTS_out 1’d1 +71 pcnt_sig_ch0_in5 0 no ledc_hs_sig_out0 1'd1 +72 pcnt_sig_ch1_in5 0 no ledc_hs_sig_out1 1'd1 +73 pcnt_ctrl_ch0_in5 0 no ledc_hs_sig_out2 1'd1 +74 pcnt_ctrl_ch1_in5 0 no ledc_hs_sig_out3 1'd1 +75 pcnt_sig_ch0_in6 0 no ledc_hs_sig_out4 1'd1 +76 pcnt_sig_ch1_in6 0 no ledc_hs_sig_out5 1'd1 +77 pcnt_ctrl_ch0_in6 0 no ledc_hs_sig_out6 1'd1 +78 pcnt_ctrl_ch1_in6 0 no ledc_hs_sig_out7 1'd1 +79 pcnt_sig_ch0_in7 0 no ledc_ls_sig_out0 1'd1 +80 pcnt_sig_ch1_in7 0 no ledc_ls_sig_out1 1'd1 +81 pcnt_ctrl_ch0_in7 0 no ledc_ls_sig_out2 1'd1 +82 pcnt_ctrl_ch1_in7 0 no ledc_ls_sig_out3 1'd1 +83 rmt_sig_in0 0 no ledc_ls_sig_out4 1'd1 +84 rmt_sig_in1 0 no ledc_ls_sig_out5 1'd1 +85 rmt_sig_in2 0 no ledc_ls_sig_out6 1'd1 +86 rmt_sig_in3 0 no ledc_ls_sig_out7 1'd1 +87 rmt_sig_in4 0 no rmt_sig_out0 1'd1 +88 rmt_sig_in5 0 no rmt_sig_out1 1'd1 +89 rmt_sig_in6 0 no rmt_sig_out2 1'd1 +90 rmt_sig_in7 0 no rmt_sig_out3 1'd1 +91 - - - rmt_sig_out4 1'd1 +92 - - - rmt_sig_out6 1'd1 +94 twai_rx 1 no rmt_sig_out7 1'd1 +95 I2CEXT1_SCL_in 1 no I2CEXT1_SCL_out 1'd1 +96 I2CEXT1_SDA_in 1 no I2CEXT1_SDA_out 1'd1 +97 host_card_detect_n_1 0 no host_ccmd_od_pullup_en_n 1'd1 +98 host_card_detect_n_2 0 no host_rst_n_1 1'd1 +99 host_card_write_prt_1 0 no host_rst_n_2 1'd1 +100 host_card_write_prt_2 0 no gpio_sd0_out 1'd1 +101 host_card_int_n_1 0 no gpio_sd1_out 1'd1 +102 host_card_int_n_2 0 no gpio_sd2_out 1'd1 +103 pwm1_sync0_in 0 no gpio_sd3_out 1'd1 +104 pwm1_sync1_in 0 no gpio_sd4_out 1'd1 +105 pwm1_sync2_in 0 no gpio_sd5_out 1'd1 +106 pwm1_f0_in 0 no gpio_sd6_out 1'd1 +107 pwm1_f1_in 0 no gpio_sd7_out 1'd1 +108 pwm1_f2_in 0 no pwm1_out0a 1'd1 +109 pwm0_cap0_in 0 no pwm1_out0b 1'd1 +110 pwm0_cap1_in 0 no pwm1_out1a 1'd1 +111 pwm0_cap2_in 0 no pwm1_out1b 1'd1 +112 pwm1_cap0_in 0 no pwm1_out2a 1'd1 +113 pwm1_cap1_in 0 no pwm1_out2b 1'd1 +114 pwm1_cap2_in 0 no pwm2_out1h 1'd1 +115 pwm2_flta 1 no pwm2_out1l 1'd1 +116 pwm2_fltb 1 no pwm2_out2h 1'd1 +117 pwm2_cap1_in 0 no pwm2_out2l 1'd1 +118 pwm2_cap2_in 0 no pwm2_out3h 1'd1 +119 pwm2_cap3_in 0 no pwm2_out3l 1'd1 +120 pwm3_flta 1 no pwm2_out4h 1'd1 +121 pwm3_fltb 1 no pwm2_out4l 1'd1 +122 pwm3_cap1_in 0 no - 1'd1 +123 pwm3_cap2_in 0 no twai_tx 1'd1 +124 pwm3_cap3_in 0 no twai_bus_off_on 1'd1 +125 - - - twai_clkout 1'd1 +140 I2S0I_DATA_in0 0 no I2S0O_DATA_out0 1'd1 +141 I2S0I_DATA_in1 0 no I2S0O_DATA_out1 1'd1 +142 I2S0I_DATA_in2 0 no I2S0O_DATA_out2 1'd1 +143 I2S0I_DATA_in3 0 no I2S0O_DATA_out3 1'd1 +144 I2S0I_DATA_in4 0 no I2S0O_DATA_out4 1'd1 +145 I2S0I_DATA_in5 0 no I2S0O_DATA_out5 1'd1 +146 I2S0I_DATA_in6 0 no I2S0O_DATA_out6 1'd1 +147 I2S0I_DATA_in7 0 no I2S0O_DATA_out7 1'd1 +148 I2S0I_DATA_in8 0 no I2S0O_DATA_out8 1'd1 +149 I2S0I_DATA_in9 0 no I2S0O_DATA_out9 1'd1 +150 I2S0I_DATA_in10 0 no I2S0O_DATA_out10 1'd1 +151 I2S0I_DATA_in11 0 no I2S0O_DATA_out11 1'd1 +152 I2S0I_DATA_in12 0 no I2S0O_DATA_out12 1'd1 +153 I2S0I_DATA_in13 0 no I2S0O_DATA_out13 1'd1 +154 I2S0I_DATA_in14 0 no I2S0O_DATA_out14 1'd1 +155 I2S0I_DATA_in15 0 no I2S0O_DATA_out15 1'd1 +156 - - - I2S0O_DATA_out16 1'd1 +157 - - - I2S0O_DATA_out17 1'd1 +158 - - - I2S0O_DATA_out18 1'd1 +159 - - - I2S0O_DATA_out19 1'd1 +160 - - - I2S0O_DATA_out20 1'd1 +161 - - - I2S0O_DATA_out21 1'd1 +162 - - - I2S0O_DATA_out22 1'd1 +163 - - - I2S0O_DATA_out23 1'd1 +164 I2S1I_BCK_in 0 no I2S1I_BCK_out 1'd1 +165 I2S1I_WS_in 0 no I2S1I_WS_out 1'd1 +166 I2S1I_DATA_in0 0 no I2S1O_DATA_out0 1'd1 +167 I2S1I_DATA_in1 0 no I2S1O_DATA_out1 1'd1 +168 I2S1I_DATA_in2 0 no I2S1O_DATA_out2 1'd1 +169 I2S1I_DATA_in3 0 no I2S1O_DATA_out3 1'd1 +170 I2S1I_DATA_in4 0 no I2S1O_DATA_out4 1'd1 +171 I2S1I_DATA_in5 0 no I2S1O_DATA_out5 1'd1 +172 I2S1I_DATA_in6 0 no I2S1O_DATA_out6 1'd1 +173 I2S1I_DATA_in7 0 no I2S1O_DATA_out7 1'd1 +174 I2S1I_DATA_in8 0 no I2S1O_DATA_out8 1'd1 +175 I2S1I_DATA_in9 0 no I2S1O_DATA_out9 1'd1 +121 pwm3_fltb 1 no pwm2_out4l 1'd1 +122 pwm3_cap1_in 0 no - 1'd1 +123 pwm3_cap2_in 0 no twai_tx 1'd1 +124 pwm3_cap3_in 0 no twai_bus_off_on 1'd1 +125 - - - twai_clkout 1'd1 +140 I2S0I_DATA_in0 0 no I2S0O_DATA_out0 1'd1 +141 I2S0I_DATA_in1 0 no I2S0O_DATA_out1 1'd1 +142 I2S0I_DATA_in2 0 no I2S0O_DATA_out2 1'd1 +143 I2S0I_DATA_in3 0 no I2S0O_DATA_out3 1'd1 +144 I2S0I_DATA_in4 0 no I2S0O_DATA_out4 1'd1 +145 I2S0I_DATA_in5 0 no I2S0O_DATA_out5 1'd1 +146 I2S0I_DATA_in6 0 no I2S0O_DATA_out6 1'd1 +147 I2S0I_DATA_in7 0 no I2S0O_DATA_out7 1'd1 +148 I2S0I_DATA_in8 0 no I2S0O_DATA_out8 1'd1 +149 I2S0I_DATA_in9 0 no I2S0O_DATA_out9 1'd1 +150 I2S0I_DATA_in10 0 no I2S0O_DATA_out10 1'd1 +151 I2S0I_DATA_in11 0 no I2S0O_DATA_out11 1'd1 +152 I2S0I_DATA_in12 0 no I2S0O_DATA_out12 1'd1 +153 I2S0I_DATA_in13 0 no I2S0O_DATA_out13 1'd1 +154 I2S0I_DATA_in14 0 no I2S0O_DATA_out14 1'd1 +155 I2S0I_DATA_in15 0 no I2S0O_DATA_out15 1'd1 +156 - - - I2S0O_DATA_out16 1'd1 +157 - - - I2S0O_DATA_out17 1'd1 +158 - - - I2S0O_DATA_out18 1'd1 +159 - - - I2S0O_DATA_out19 1'd1 +160 - - - I2S0O_DATA_out20 1'd1 +161 - - - I2S0O_DATA_out21 1'd1 +162 - - - I2S0O_DATA_out22 1'd1 +163 - - - I2S0O_DATA_out23 1'd1 +164 I2S1I_BCK_in 0 no I2S1I_BCK_out 1'd1 +165 I2S1I_WS_in 0 no I2S1I_WS_out 1'd1 +166 I2S1I_DATA_in0 0 no I2S1O_DATA_out0 1'd1 +167 I2S1I_DATA_in1 0 no I2S1O_DATA_out1 1'd1 +168 I2S1I_DATA_in2 0 no I2S1O_DATA_out2 1'd1 +169 I2S1I_DATA_in3 0 no I2S1O_DATA_out3 1'd1 +170 I2S1I_DATA_in4 0 no I2S1O_DATA_out4 1'd1 +171 I2S1I_DATA_in5 0 no I2S1O_DATA_out5 1'd1 +172 I2S1I_DATA_in6 0 no I2S1O_DATA_out6 1'd1 +173 I2S1I_DATA_in7 0 no I2S1O_DATA_out7 1'd1 +174 I2S1I_DATA_in8 0 no I2S1O_DATA_out8 1'd1 +175 I2S1I_DATA_in9 0 no I2S1O_DATA_out9 1'd1 +176 I2S1I_DATA_in10 0 no I2S1O_DATA_out10 1'd1 +177 I2S1I_DATA_in11 0 no I2S1O_DATA_out11 1'd1 +178 I2S1I_DATA_in12 0 no I2S1O_DATA_out12 1'd1 +179 I2S1I_DATA_in13 0 no I2S1O_DATA_out13 1'd1 +180 I2S1I_DATA_in14 0 no I2S1O_DATA_out14 1'd1 +181 I2S1I_DATA_in15 0 no I2S1O_DATA_out15 1'd1 +182 - - - I2S1O_DATA_out16 1'd1 +183 - - - I2S1O_DATA_out17 1'd1 +184 - - - I2S1O_DATA_out18 1'd1 +185 - - - I2S1O_DATA_out19 1'd1 +186 - - - I2S1O_DATA_out20 1'd1 +187 - - - I2S1O_DATA_out21 1'd1 +188 - - - I2S1O_DATA_out22 1'd1 +189 - - - I2S1O_DATA_out23 1'd1 +190 I2S0I_H_SYNC 0 no pwm3_out1h 1'd1 +191 I2S0I_V_SYNC 0 no pwm3_out1l 1'd1 +192 I2S0I_H_ENABLE 0 no pwm3_out2h 1'd1 +193 I2S1I_H_SYNC 0 no pwm3_out2l 1'd1 +194 I2S1I_V_SYNC 0 no pwm3_out3h 1'd1 +195 I2S1I_H_ENABLE 0 no pwm3_out3l 1'd1 +196 - - - pwm3_out4h 1'd1 +197 - - - pwm3_out4l 1'd1 +198 U2RXD_in 0 yes U2TXD_out 1'd1 +199 U2CTS_in 0 yes U2RTS_out 1'd1 200 emac_mdc_i 0 no emac_mdc_o emac_mdc_oe 201 emac_mdi_i 0 no emac_mdo_o emac_mdo_o_e 202 emac_crs_i 0 no emac_crs_o emac_crs_oe 203 emac_col_i 0 no emac_col_o emac_col_oe -204 pcmfsync_in 0 no bt_audio0_irq 1’d1 -205 pcmclk_in 0 no bt_audio1_irq 1’d1 -206 pcmdin 0 no bt_audio2_irq 1’d1 -207 - - - ble_audio0_irq 1’d1 -208 - - - ble_audio1_irq 1’d1 -209 - - - ble_audio2_irq 1’d1 +204 pcmfsync_in 0 no bt_audio0_irq 1'd1 +205 pcmclk_in 0 no bt_audio1_irq 1'd1 +206 pcmdin 0 no bt_audio2_irq 1'd1 +207 - - - ble_audio0_irq 1'd1 +208 - - - ble_audio1_irq 1'd1 +209 - - - ble_audio2_irq 1'd1 210 - - - pcmfsync_out pcmfsync_en 211 - - - pcmclk_out pcmclk_en 212 - - - pcmdout pcmdout_en -213 - - - ble_audio_sync0_p 1’d1 -214 - - - ble_audio_sync1_p 1’d1 -215 - - - ble_audio_sync2_p 1’d1 -224 - - - sig_in_func224 1’d1 -225 - - - sig_in_func225 1’d1 -226 - - - sig_in_func226 1’d1 -227 - - - sig_in_func227 1’d1 -228 - - - sig_in_func228 1’d1 +213 - - - ble_audio_sync0_p 1'd1 +214 - - - ble_audio_sync1_p 1'd1 +215 - - - ble_audio_sync2_p 1'd1 +224 - - - sig_in_func224 1'd1 +225 - - - sig_in_func225 1'd1 +226 - - - sig_in_func226 1'd1 +227 - - - sig_in_func227 1'd1 +228 - - - sig_in_func228 1'd1 diff --git a/Sming/Arch/Esp32/esp32c2-pindefs.txt b/Sming/Arch/Esp32/esp32c2-pindefs.txt index 12da455040..9580723c67 100644 --- a/Sming/Arch/Esp32/esp32c2-pindefs.txt +++ b/Sming/Arch/Esp32/esp32c2-pindefs.txt @@ -39,19 +39,19 @@ signal input default direct_in output enable direct_out 3 SPIWP_in 0 yes SPIWP_out SPIWP_oe yes 4 - - - SPICLK_out_mux SPICLK_oe yes 5 - - - SPICS0_out SPICS0_oe yes -6 U0RXD_in 0 yes U0TXD_out 1’d1 yes -7 U0CTS_in 0 no U0RTS_out 1’d1 no -8 U0DSR_in 0 no U0DTR_out 1’d1 no -9 U1RXD_in 0 no U1TXD_out 1’d1 no -10 U1CTS_in 0 no U1RTS_out 1’d1 no -11 U1DSR_in 0 no U1DTR_out 1’d1 no +6 U0RXD_in 0 yes U0TXD_out 1'd1 yes +7 U0CTS_in 0 no U0RTS_out 1'd1 no +8 U0DSR_in 0 no U0DTR_out 1'd1 no +9 U1RXD_in 0 no U1TXD_out 1'd1 no +10 U1CTS_in 0 no U1RTS_out 1'd1 no +11 U1DSR_in 0 no U1DTR_out 1'd1 no 12 - - - - - - 13 - - - - - - 14 - - - - - - -15 - - - SPIQ_monitor 1’d1 no -16 - - - SPID_monitor 1’d1 no -17 - - - SPIHD_monitor 1’d1 no -18 - - - SPIWP_monitor 1’d1 no +15 - - - SPIQ_monitor 1'd1 no +16 - - - SPID_monitor 1'd1 no +17 - - - SPIHD_monitor 1'd1 no +18 - - - SPIWP_monitor 1'd1 no 19 - - - SPICS1_out SPICS1_oe no 20 - - - - - - 21 - - - - - - @@ -78,12 +78,12 @@ signal input default direct_in output enable direct_out 42 - - - - - - 43 - - - - - - 44 - - - - - - -45 ext_adc_start 0 no ledc_ls_sig_out0 1’d1 no -46 - - - ledc_ls_sig_out1 1’d1 no -47 - - - ledc_ls_sig_out2 1’d1 no -48 - - - ledc_ls_sig_out3 1’d1 no -49 - - - ledc_ls_sig_out4 1’d1 no -50 - - - ledc_ls_sig_out5 1’d1 no +45 ext_adc_start 0 no ledc_ls_sig_out0 1'd1 no +46 - - - ledc_ls_sig_out1 1'd1 no +47 - - - ledc_ls_sig_out2 1'd1 no +48 - - - ledc_ls_sig_out3 1'd1 no +49 - - - ledc_ls_sig_out4 1'd1 no +50 - - - ledc_ls_sig_out5 1'd1 no 51 - - - - - - 52 - - - - - - 53 I2CEXT0_SCL_in 1 no I2CEXT0_SCL_out I2CEXT0_SCL_oe no @@ -122,18 +122,18 @@ signal input default direct_in output enable direct_out 86 - - - - - - 87 - - - - - - 88 - - - - - - -89 - - - ant_sel0 1’d1 no -90 - - - ant_sel1 1’d1 no -91 - - - ant_sel2 1’d1 no -92 - - - ant_sel3 1’d1 no -93 - - - ant_sel4 1’d1 no -94 - - - ant_sel5 1’d1 no -95 - - - ant_sel6 1’d1 no -96 - - - ant_sel7 1’d1 no -97 sig_in_func_97 0 no sig_in_func97 1’d1 no -98 sig_in_func_98 0 no sig_in_func98 1’d1 no -99 sig_in_func_99 0 no sig_in_func99 1’d1 no -100 sig_in_func_100 0 no sig_in_func100 1’d1 no +89 - - - ant_sel0 1'd1 no +90 - - - ant_sel1 1'd1 no +91 - - - ant_sel2 1'd1 no +92 - - - ant_sel3 1'd1 no +93 - - - ant_sel4 1'd1 no +94 - - - ant_sel5 1'd1 no +95 - - - ant_sel6 1'd1 no +96 - - - ant_sel7 1'd1 no +97 sig_in_func_97 0 no sig_in_func97 1'd1 no +98 sig_in_func_98 0 no sig_in_func98 1'd1 no +99 sig_in_func_99 0 no sig_in_func99 1'd1 no +100 sig_in_func_100 0 no sig_in_func100 1'd1 no 101 - - - - - - 102 - - - - - - 103 - - - - - - @@ -156,8 +156,8 @@ signal input default direct_in output enable direct_out 120 - - - - - - 121 - - - - - - 122 - - - - - - -123 - - - CLK_OUT_out1 1’d1 no -124 - - - CLK_OUT_out2 1’d1 no -125 - - - CLK_OUT_out3 1’d1 no +123 - - - CLK_OUT_out1 1'd1 no +124 - - - CLK_OUT_out2 1'd1 no +125 - - - CLK_OUT_out3 1'd1 no 126 - - - - - - 127 - - - - - - diff --git a/Sming/Arch/Esp32/esp32c3-pindefs.txt b/Sming/Arch/Esp32/esp32c3-pindefs.txt index b2cd8847ae..82073a5953 100644 --- a/Sming/Arch/Esp32/esp32c3-pindefs.txt +++ b/Sming/Arch/Esp32/esp32c3-pindefs.txt @@ -39,28 +39,28 @@ signal input default direct_in output enable direct_out 3 SPIWP_in 0 yes SPIWP_out SPIWP_oe yes 4 - - - SPICLK_out_mux SPICLK_oe yes 5 - - - SPICS0_out SPICS0_oe yes -6 U0RXD_in 0 yes U0TXD_out 1’d1 yes -7 U0CTS_in 0 yes U0RTS_out 1’d1 no -8 U0DSR_in 0 no U0DTR_out 1’d1 no -9 U1RXD_in 0 yes U1TXD_out 1’d1 no -10 U1CTS_in 0 yes U1RTS_out 1’d1 no -11 U1DSR_in 0 no U1DTR_out 1’d1 no -12 I2S_MCLK_in 0 no I2S_MCLK_out 1’d1 no -13 I2SO_BCK_in 0 no I2SO_BCK_out 1’d1 no -14 I2SO_WS_in 0 no I2SO_WS_out 1’d1 no -15 I2SI_SD_in 0 no I2SO_SD_out 1’d1 no -16 I2SI_BCK_in 0 no I2SI_BCK_out 1’d1 no -17 I2SI_WS_in 0 no I2SI_WS_out 1’d1 no -18 gpio_bt_priority 0 no gpio_wlan_prio 1’d1 no -19 gpio_bt_active 0 no gpio_wlan_active 1’d1 no -20 - - - - 1’d1 no -21 - - - - 1’d1 no -22 - - - - 1’d1 no -23 - - - - 1’d1 no -24 - - - - 1’d1 no -25 - - - - 1’d1 no -26 - - - - 1’d1 no -27 - - - - 1’d1 no +6 U0RXD_in 0 yes U0TXD_out 1'd1 yes +7 U0CTS_in 0 yes U0RTS_out 1'd1 no +8 U0DSR_in 0 no U0DTR_out 1'd1 no +9 U1RXD_in 0 yes U1TXD_out 1'd1 no +10 U1CTS_in 0 yes U1RTS_out 1'd1 no +11 U1DSR_in 0 no U1DTR_out 1'd1 no +12 I2S_MCLK_in 0 no I2S_MCLK_out 1'd1 no +13 I2SO_BCK_in 0 no I2SO_BCK_out 1'd1 no +14 I2SO_WS_in 0 no I2SO_WS_out 1'd1 no +15 I2SI_SD_in 0 no I2SO_SD_out 1'd1 no +16 I2SI_BCK_in 0 no I2SI_BCK_out 1'd1 no +17 I2SI_WS_in 0 no I2SI_WS_out 1'd1 no +18 gpio_bt_priority 0 no gpio_wlan_prio 1'd1 no +19 gpio_bt_active 0 no gpio_wlan_active 1'd1 no +20 - - - - 1'd1 no +21 - - - - 1'd1 no +22 - - - - 1'd1 no +23 - - - - 1'd1 no +24 - - - - 1'd1 no +25 - - - - 1'd1 no +26 - - - - 1'd1 no +27 - - - - 1'd1 no 28 cpu_gpio_in0 0 no cpu_gpio_out0 cpu_gpio_out_oen0 no 29 cpu_gpio_in1 0 no cpu_gpio_out1 cpu_gpio_out_oen1 no 30 cpu_gpio_in2 0 no cpu_gpio_out2 cpu_gpio_out_oen2 no @@ -69,33 +69,33 @@ signal input default direct_in output enable direct_out 33 cpu_gpio_in5 0 no cpu_gpio_out5 cpu_gpio_out_oen5 no 34 cpu_gpio_in6 0 no cpu_gpio_out6 cpu_gpio_out_oen6 no 35 cpu_gpio_in7 0 no cpu_gpio_out7 cpu_gpio_out_oen7 no -36 - - - usb_jtag_tck 1’d1 no -37 - - - usb_jtag_tms 1’d1 no -38 - - - usb_jtag_tdi 1’d1 no -39 - - - usb_jtag_tdo 1’d1 no -40 - - - - 1’d1 no -41 - - - - 1’d1 no -42 - - - - 1’d1 no -43 - - - - 1’d1 no -44 - - - - 1’d1 no -45 ext_adc_start 0 no ledc_ls_sig_out0 1’d1 no -46 - - - ledc_ls_sig_out1 1’d1 no -47 - - - ledc_ls_sig_out2 1’d1 no -48 - - - ledc_ls_sig_out3 1’d1 no -49 - - - ledc_ls_sig_out4 1’d1 no -50 - - - ledc_ls_sig_out5 1’d1 no -51 rmt_sig_in0 0 no rmt_sig_out0 1’d1 no -52 rmt_sig_in1 0 no rmt_sig_out1 1’d1 no +36 - - - usb_jtag_tck 1'd1 no +37 - - - usb_jtag_tms 1'd1 no +38 - - - usb_jtag_tdi 1'd1 no +39 - - - usb_jtag_tdo 1'd1 no +40 - - - - 1'd1 no +41 - - - - 1'd1 no +42 - - - - 1'd1 no +43 - - - - 1'd1 no +44 - - - - 1'd1 no +45 ext_adc_start 0 no ledc_ls_sig_out0 1'd1 no +46 - - - ledc_ls_sig_out1 1'd1 no +47 - - - ledc_ls_sig_out2 1'd1 no +48 - - - ledc_ls_sig_out3 1'd1 no +49 - - - ledc_ls_sig_out4 1'd1 no +50 - - - ledc_ls_sig_out5 1'd1 no +51 rmt_sig_in0 0 no rmt_sig_out0 1'd1 no +52 rmt_sig_in1 0 no rmt_sig_out1 1'd1 no 53 I2CEXT0_SCL_in 1 no I2CEXT0_SCL_out I2CEXT0_SCL_oe no 54 I2CEXT0_SDA_in 1 no I2CEXT0_SDA_out I2CEXT0_SDA_oe no -55 - - - gpio_sd0_out 1’d1 no -56 - - - gpio_sd1_out 1’d1 no -57 - - - gpio_sd2_out 1’d1 no -58 - - - gpio_sd3_out 1’d1 no -59 - - - I2SO_SD1_out 1’d1 no -60 - - - - 1’d1 no -61 - - - - 1’d1 no -62 - - - - 1’d1 no +55 - - - gpio_sd0_out 1'd1 no +56 - - - gpio_sd1_out 1'd1 no +57 - - - gpio_sd2_out 1'd1 no +58 - - - gpio_sd3_out 1'd1 no +59 - - - I2SO_SD1_out 1'd1 no +60 - - - - 1'd1 no +61 - - - - 1'd1 no +62 - - - - 1'd1 no 63 FSPICLK_in 0 yes FSPICLK_out_mux FSPICLK_oe yes 64 FSPIQ_in 0 yes FSPIQ_out FSPIQ_oe yes 65 FSPID_in 0 yes FSPID_out FSPID_oe yes @@ -107,57 +107,57 @@ signal input default direct_in output enable direct_out 71 - - - FSPICS3_out FSPICS3_oe no 72 - - - FSPICS4_out FSPICS4_oe no 73 - - - FSPICS5_out FSPICS5_oe no -74 twai_rx 1 no twai_tx 1’d1 no -75 - - - twai_bus_off_on 1’d1 no -76 - - - twai_clkout 1’d1 no -77 - - - - 1’d1 no -78 - - - - 1’d1 no -79 - - - - 1’d1 no -80 - - - - 1’d1 no -81 - - - - 1’d1 no -82 - - - - 1’d1 no -83 - - - - 1’d1 no -84 - - - - 1’d1 no -85 - - - - 1’d1 no -86 - - - - 1’d1 no -87 - - - - 1’d1 no -88 - - - - 1’d1 no -89 - - - ant_sel0 1’d1 no -90 - - - ant_sel1 1’d1 no -91 - - - ant_sel2 1’d1 no -92 - - - ant_sel3 1’d1 no -93 - - - ant_sel4 1’d1 no -94 - - - ant_sel5 1’d1 no -95 - - - ant_sel6 1’d1 no -96 - - - ant_sel7 1’d1 no -97 sig_in_func_97 0 no sig_in_func97 1’d1 no -98 sig_in_func_98 0 no sig_in_func98 1’d1 no -99 sig_in_func_99 0 no sig_in_func99 1’d1 no -100 sig_in_func_100 0 no sig_in_func100 1’d1 no -101 - - - - 1’d1 no -102 - - - - 1’d1 no -103 - - - - 1’d1 no -104 - - - - 1’d1 no -105 - - - - 1’d1 no -106 - - - - 1’d1 no -107 - - - - 1’d1 no -108 - - - - 1’d1 no -109 - - - - 1’d1 no -110 - - - - 1’d1 no -111 - - - - 1’d1 no -112 - - - - 1’d1 no -113 - - - - 1’d1 no -114 - - - - 1’d1 no -115 - - - - 1’d1 no -116 - - - - 1’d1 no -117 - - - - 1’d1 no -118 - - - - 1’d1 no -119 - - - - 1’d1 no -120 - - - - 1’d1 no -121 - - - - 1’d1 no -122 - - - - 1’d1 no -123 - - - CLK_OUT_out1 1’d1 no -124 - - - CLK_OUT_out2 1’d1 no -125 - - - CLK_OUT_out3 1’d1 no -126 - - - SPICS1_out 1’d1 no -127 - - - usb_jtag_trst 1’d1 no +74 twai_rx 1 no twai_tx 1'd1 no +75 - - - twai_bus_off_on 1'd1 no +76 - - - twai_clkout 1'd1 no +77 - - - - 1'd1 no +78 - - - - 1'd1 no +79 - - - - 1'd1 no +80 - - - - 1'd1 no +81 - - - - 1'd1 no +82 - - - - 1'd1 no +83 - - - - 1'd1 no +84 - - - - 1'd1 no +85 - - - - 1'd1 no +86 - - - - 1'd1 no +87 - - - - 1'd1 no +88 - - - - 1'd1 no +89 - - - ant_sel0 1'd1 no +90 - - - ant_sel1 1'd1 no +91 - - - ant_sel2 1'd1 no +92 - - - ant_sel3 1'd1 no +93 - - - ant_sel4 1'd1 no +94 - - - ant_sel5 1'd1 no +95 - - - ant_sel6 1'd1 no +96 - - - ant_sel7 1'd1 no +97 sig_in_func_97 0 no sig_in_func97 1'd1 no +98 sig_in_func_98 0 no sig_in_func98 1'd1 no +99 sig_in_func_99 0 no sig_in_func99 1'd1 no +100 sig_in_func_100 0 no sig_in_func100 1'd1 no +101 - - - - 1'd1 no +102 - - - - 1'd1 no +103 - - - - 1'd1 no +104 - - - - 1'd1 no +105 - - - - 1'd1 no +106 - - - - 1'd1 no +107 - - - - 1'd1 no +108 - - - - 1'd1 no +109 - - - - 1'd1 no +110 - - - - 1'd1 no +111 - - - - 1'd1 no +112 - - - - 1'd1 no +113 - - - - 1'd1 no +114 - - - - 1'd1 no +115 - - - - 1'd1 no +116 - - - - 1'd1 no +117 - - - - 1'd1 no +118 - - - - 1'd1 no +119 - - - - 1'd1 no +120 - - - - 1'd1 no +121 - - - - 1'd1 no +122 - - - - 1'd1 no +123 - - - CLK_OUT_out1 1'd1 no +124 - - - CLK_OUT_out2 1'd1 no +125 - - - CLK_OUT_out3 1'd1 no +126 - - - SPICS1_out 1'd1 no +127 - - - usb_jtag_trst 1'd1 no diff --git a/Sming/Arch/Esp32/esp32s2-pindefs.txt b/Sming/Arch/Esp32/esp32s2-pindefs.txt index 5b7ec005cf..360adee6b5 100644 --- a/Sming/Arch/Esp32/esp32s2-pindefs.txt +++ b/Sming/Arch/Esp32/esp32s2-pindefs.txt @@ -84,42 +84,42 @@ signal input default direct_in output enable 9 SPID6_in 0 yes SPID6_out SPID6_oe 10 SPID7_in 0 yes SPID7_out SPID7_oe 11 SPIDQS_in 0 yes SPIDQS_out SPIDQS_oe -14 U0RXD_in 0 yes U0TXD_out 1’d1 -15 U0CTS_in 0 yes U0RTS_out 1’d1 -16 U0DSR_in 0 no U0DTR_out 1’d1 -17 U1RXD_in 0 yes U1TXD_out 1’d1 -18 U1CTS_in 0 yes U1RTS_out 1’d1 -21 U1DSR_in 0 no U1DTR_out 1’d1 -23 I2S0O_BCK_in 0 no I2S0O_BCK_out 1’d1 -25 I2S0O_WS_in 0 no I2S0O_WS_out 1’d1 -27 I2S0I_BCK_in 0 no I2S0I_BCK_out 1’d1 -28 I2S0I_WS_in 0 no I2S0I_WS_out 1’d1 +14 U0RXD_in 0 yes U0TXD_out 1'd1 +15 U0CTS_in 0 yes U0RTS_out 1'd1 +16 U0DSR_in 0 no U0DTR_out 1'd1 +17 U1RXD_in 0 yes U1TXD_out 1'd1 +18 U1CTS_in 0 yes U1RTS_out 1'd1 +21 U1DSR_in 0 no U1DTR_out 1'd1 +23 I2S0O_BCK_in 0 no I2S0O_BCK_out 1'd1 +25 I2S0O_WS_in 0 no I2S0O_WS_out 1'd1 +27 I2S0I_BCK_in 0 no I2S0I_BCK_out 1'd1 +28 I2S0I_WS_in 0 no I2S0I_WS_out 1'd1 29 I2CEXT0_SCL_in 1 no I2CEXT0_SCL_out I2CEXT0_SCL_oe 30 I2CEXT0_SDA_in 1 no I2CEXT0_SDA_out I2CEXT0_SDA_oe -39 pcnt_sig_ch0_in0 0 no gpio_wlan_prio 1’d1 -40 pcnt_sig_ch1_in0 0 no gpio_wlan_active 1’d1 -41 pcnt_ctrl_ch0_in0 0 no - 1’d1 -42 pcnt_ctrl_ch1_in0 0 no - 1’d1 -43 pcnt_sig_ch0_in1 0 no - 1’d1 -44 pcnt_sig_ch1_in1 0 no - 1’d1 -45 pcnt_ctrl_ch0_in1 0 no - 1’d1 -46 pcnt_ctrl_ch1_in1 0 no - 1’d1 -47 pcnt_sig_ch0_in2 0 no - 1’d1 -48 pcnt_sig_ch1_in2 0 no - 1’d1 -49 pcnt_ctrl_ch0_in2 0 no - 1’d1 -50 pcnt_ctrl_ch1_in2 0 no - 1’d1 -51 pcnt_sig_ch0_in3 0 no - 1’d1 -52 pcnt_sig_ch1_in3 0 no - 1’d1 -53 pcnt_ctrl_ch0_in3 0 no - 1’d1 -54 pcnt_ctrl_ch1_in3 0 no - 1’d1 -64 usb_otg_iddig_in 0 no - 1’d1 -65 usb_otg_avalid_in 0 no - 1’d1 -66 usb_srp_bvalid_in 0 no usb_otg_idpullup 1’d1 -67 usb_otg_vbusvalid_in 0 no usb_otg_dppulldown 1’d1 -68 usb_srp_sessend_in 0 no usb_otg_dmpulldown 1’d1 -69 - - - usb_otg_drvvbus 1’d1 -70 - - - usb_srp_chrgvbus 1’d1 -71 - - - usb_srp_dischrgvbus 1’d1 +39 pcnt_sig_ch0_in0 0 no gpio_wlan_prio 1'd1 +40 pcnt_sig_ch1_in0 0 no gpio_wlan_active 1'd1 +41 pcnt_ctrl_ch0_in0 0 no - 1'd1 +42 pcnt_ctrl_ch1_in0 0 no - 1'd1 +43 pcnt_sig_ch0_in1 0 no - 1'd1 +44 pcnt_sig_ch1_in1 0 no - 1'd1 +45 pcnt_ctrl_ch0_in1 0 no - 1'd1 +46 pcnt_ctrl_ch1_in1 0 no - 1'd1 +47 pcnt_sig_ch0_in2 0 no - 1'd1 +48 pcnt_sig_ch1_in2 0 no - 1'd1 +49 pcnt_ctrl_ch0_in2 0 no - 1'd1 +50 pcnt_ctrl_ch1_in2 0 no - 1'd1 +51 pcnt_sig_ch0_in3 0 no - 1'd1 +52 pcnt_sig_ch1_in3 0 no - 1'd1 +53 pcnt_ctrl_ch0_in3 0 no - 1'd1 +54 pcnt_ctrl_ch1_in3 0 no - 1'd1 +64 usb_otg_iddig_in 0 no - 1'd1 +65 usb_otg_avalid_in 0 no - 1'd1 +66 usb_srp_bvalid_in 0 no usb_otg_idpullup 1'd1 +67 usb_otg_vbusvalid_in 0 no usb_otg_dppulldown 1'd1 +68 usb_srp_sessend_in 0 no usb_otg_dmpulldown 1'd1 +69 - - - usb_otg_drvvbus 1'd1 +70 - - - usb_srp_chrgvbus 1'd1 +71 - - - usb_srp_dischrgvbus 1'd1 72 SPI3_CLK_in 0 no SPI3_CLK_out_mux SPI3_CLK_oe 73 SPI3_Q_in 0 no SPI3_Q_out SPI3_Q_oe 74 SPI3_D_in 0 no SPI3_D_out SPI3_D_oe @@ -127,28 +127,28 @@ signal input default direct_in output enable 76 SPI3_CS0_in 0 no SPI3_CS0_out SPI3_CS0_oe 77 - - - SPI3_CS1_out SPI3_CS1_oe 78 - - - SPI3_CS2_out SPI3_CS2_oe -79 - - - ledc_ls_sig_out0 1’d1 -80 - - - ledc_ls_sig_out1 1’d1 -81 - - - ledc_ls_sig_out2 1’d1 -82 - - - ledc_ls_sig_out3 1’d1 -83 rmt_sig_in0 0 no ledc_ls_sig_out4 1’d1 -84 rmt_sig_in1 0 no ledc_ls_sig_out5 1’d1 -85 rmt_sig_in2 0 no ledc_ls_sig_out6 1’d1 -86 rmt_sig_in3 0 no ledc_ls_sig_out7 1’d1 -87 - - - rmt_sig_out0 1’d1 -88 - - - rmt_sig_out1 1’d1 -89 - - - rmt_sig_out2 1’d1 -90 - - - rmt_sig_out3 1’d1 +79 - - - ledc_ls_sig_out0 1'd1 +80 - - - ledc_ls_sig_out1 1'd1 +81 - - - ledc_ls_sig_out2 1'd1 +82 - - - ledc_ls_sig_out3 1'd1 +83 rmt_sig_in0 0 no ledc_ls_sig_out4 1'd1 +84 rmt_sig_in1 0 no ledc_ls_sig_out5 1'd1 +85 rmt_sig_in2 0 no ledc_ls_sig_out6 1'd1 +86 rmt_sig_in3 0 no ledc_ls_sig_out7 1'd1 +87 - - - rmt_sig_out0 1'd1 +88 - - - rmt_sig_out1 1'd1 +89 - - - rmt_sig_out2 1'd1 +90 - - - rmt_sig_out3 1'd1 95 I2CEXT1_SCL_in 1 no I2CEXT1_SCL_out I2CEXT1_SCL_oe 96 I2CEXT1_SDA_in 1 no I2CEXT1_SDA_out I2CEXT1_SDA_oe -100 - - - gpio_sd0_out 1’d1 -101 - - - gpio_sd1_out 1’d1 -102 - - - gpio_sd2_out 1’d1 -103 - - - gpio_sd3_out 1’d1 -104 - - - gpio_sd4_out 1’d1 -105 - - - gpio_sd5_out 1’d1 -106 - - - gpio_sd6_out 1’d1 -107 - - - gpio_sd7_out 1’d1 +100 - - - gpio_sd0_out 1'd1 +101 - - - gpio_sd1_out 1'd1 +102 - - - gpio_sd2_out 1'd1 +103 - - - gpio_sd3_out 1'd1 +104 - - - gpio_sd4_out 1'd1 +105 - - - gpio_sd5_out 1'd1 +106 - - - gpio_sd6_out 1'd1 +107 - - - gpio_sd7_out 1'd1 108 FSPICLK_in 0 yes FSPICLK_out_mux FSPICLK_oe 109 FSPIQ_in 0 yes FSPIQ_out FSPIQ_oe 110 FSPID_in 0 yes FSPID_out FSPID_oe @@ -164,9 +164,9 @@ signal input default direct_in output enable 120 - - - FSPICS3_out FSPICS3_oe 121 - - - FSPICS4_out FSPICS4_oe 122 - - - FSPICS5_out FSPICS5_oe -123 twai_rx 1 no twai_tx 1’d1 -124 - - - twai_bus_off_on 1’d1 -125 - - - twai_clkout 1’d1 +123 twai_rx 1 no twai_tx 1'd1 +124 - - - twai_bus_off_on 1'd1 +125 - - - twai_clkout 1'd1 126 - - - SUBSPICLK_out_mux SUBSPICLK_oe 127 SUBSPIQ_in 0 yes SUBSPIQ_out SUBSPIQ_oe 128 SUBSPID_in 0 yes SUBSPID_out SUBSPID_oe @@ -181,57 +181,57 @@ signal input default direct_in output enable 137 - - - FSPICD_out FSPICD_oe 139 - - - SPI3_CD_out SPI3_CD_oe 140 - - - SPI3_DQS_out SPI3_DQS_oe -143 I2S0I_DATA_in0 0 no I2S0O_DATA_out0 1’d1 -144 I2S0I_DATA_in1 0 no I2S0O_DATA_out1 1’d1 -145 I2S0I_DATA_in2 0 no I2S0O_DATA_out2 1’d1 -146 I2S0I_DATA_in3 0 no I2S0O_DATA_out3 1’d1 -147 I2S0I_DATA_in4 0 no I2S0O_DATA_out4 1’d1 -148 I2S0I_DATA_in5 0 no I2S0O_DATA_out5 1’d1 -149 I2S0I_DATA_in6 0 no I2S0O_DATA_out6 1’d1 -150 I2S0I_DATA_in7 0 no I2S0O_DATA_out7 1’d1 -151 I2S0I_DATA_in8 0 no I2S0O_DATA_out8 1’d1 -152 I2S0I_DATA_in9 0 no I2S0O_DATA_out9 1’d1 -153 I2S0I_DATA_in10 0 no I2S0O_DATA_out10 1’d1 -154 I2S0I_DATA_in11 0 no I2S0O_DATA_out11 1’d1 -155 I2S0I_DATA_in12 0 no I2S0O_DATA_out12 1’d1 -156 I2S0I_DATA_in13 0 no I2S0O_DATA_out13 1’d1 -157 I2S0I_DATA_in14 0 no I2S0O_DATA_out14 1’d1 -158 I2S0I_DATA_in15 0 no I2S0O_DATA_out15 1’d1 -159 - - - I2S0O_DATA_out16 1’d1 -160 - - - I2S0O_DATA_out17 1’d1 -161 - - - I2S0O_DATA_out18 1’d1 -162 - - - I2S0O_DATA_out19 1’d1 -163 - - - I2S0O_DATA_out20 1’d1 -164 - - - I2S0O_DATA_out21 1’d1 -165 - - - I2S0O_DATA_out22 1’d1 -166 - - - I2S0O_DATA_out23 1’d1 +143 I2S0I_DATA_in0 0 no I2S0O_DATA_out0 1'd1 +144 I2S0I_DATA_in1 0 no I2S0O_DATA_out1 1'd1 +145 I2S0I_DATA_in2 0 no I2S0O_DATA_out2 1'd1 +146 I2S0I_DATA_in3 0 no I2S0O_DATA_out3 1'd1 +147 I2S0I_DATA_in4 0 no I2S0O_DATA_out4 1'd1 +148 I2S0I_DATA_in5 0 no I2S0O_DATA_out5 1'd1 +149 I2S0I_DATA_in6 0 no I2S0O_DATA_out6 1'd1 +150 I2S0I_DATA_in7 0 no I2S0O_DATA_out7 1'd1 +151 I2S0I_DATA_in8 0 no I2S0O_DATA_out8 1'd1 +152 I2S0I_DATA_in9 0 no I2S0O_DATA_out9 1'd1 +153 I2S0I_DATA_in10 0 no I2S0O_DATA_out10 1'd1 +154 I2S0I_DATA_in11 0 no I2S0O_DATA_out11 1'd1 +155 I2S0I_DATA_in12 0 no I2S0O_DATA_out12 1'd1 +156 I2S0I_DATA_in13 0 no I2S0O_DATA_out13 1'd1 +157 I2S0I_DATA_in14 0 no I2S0O_DATA_out14 1'd1 +158 I2S0I_DATA_in15 0 no I2S0O_DATA_out15 1'd1 +159 - - - I2S0O_DATA_out16 1'd1 +160 - - - I2S0O_DATA_out17 1'd1 +161 - - - I2S0O_DATA_out18 1'd1 +162 - - - I2S0O_DATA_out19 1'd1 +163 - - - I2S0O_DATA_out20 1'd1 +164 - - - I2S0O_DATA_out21 1'd1 +165 - - - I2S0O_DATA_out22 1'd1 +166 - - - I2S0O_DATA_out23 1'd1 167 SUBSPID4_in 0 yes SUBSPID4_out SUBSPID4_oe 168 SUBSPID5_in 0 yes SUBSPID5_out SUBSPID5_oe 169 SUBSPID6_in 0 yes SUBSPID6_out SUBSPID6_oe 170 SUBSPID7_in 0 yes SUBSPID7_out SUBSPID7_oe 171 SUBSPIDQS_in 0 yes SUBSPIDQS_out SUBSPIDQS_oe -193 I2S0I_H_SYNC 0 no - 1’d1 -194 I2S0I_V_SYNC 0 no - 1’d1 -195 I2S0I_H_ENABLE 0 no - 1’d1 -215 - - - ant_sel0 1’d1 -216 - - - ant_sel1 1’d1 -217 - - - ant_sel2 1’d1 -218 - - - ant_sel3 1’d1 -219 - - - ant_sel4 1’d1 -220 - - - ant_sel5 1’d1 -221 - - - ant_sel6 1’d1 -222 - - - ant_sel7 1’d1 -223 sig_in_func_223 0 no sig_in_func223 1’d1 -224 sig_in_func_224 0 no sig_in_func224 1’d1 -225 sig_in_func_225 0 no sig_in_func225 1’d1 -226 sig_in_func_226 0 no sig_in_func226 1’d1 -227 sig_in_func_227 0 no sig_in_func227 1’d1 -235 pro_alonegpio_in0 0 no pro_alonegpio_out0 1’d1 -236 pro_alonegpio_in1 0 no pro_alonegpio_out1 1’d1 -237 pro_alonegpio_in2 0 no pro_alonegpio_out2 1’d1 -238 pro_alonegpio_in3 0 no pro_alonegpio_out3 1’d1 -239 pro_alonegpio_in4 0 no pro_alonegpio_out4 1’d1 -240 pro_alonegpio_in5 0 no pro_alonegpio_out5 1’d1 -241 pro_alonegpio_in6 0 no pro_alonegpio_out6 1’d1 -242 pro_alonegpio_in7 0 no pro_alonegpio_out7 1’d1 -251 - - - clk_i2s_mux 1’d1 +193 I2S0I_H_SYNC 0 no - 1'd1 +194 I2S0I_V_SYNC 0 no - 1'd1 +195 I2S0I_H_ENABLE 0 no - 1'd1 +215 - - - ant_sel0 1'd1 +216 - - - ant_sel1 1'd1 +217 - - - ant_sel2 1'd1 +218 - - - ant_sel3 1'd1 +219 - - - ant_sel4 1'd1 +220 - - - ant_sel5 1'd1 +221 - - - ant_sel6 1'd1 +222 - - - ant_sel7 1'd1 +223 sig_in_func_223 0 no sig_in_func223 1'd1 +224 sig_in_func_224 0 no sig_in_func224 1'd1 +225 sig_in_func_225 0 no sig_in_func225 1'd1 +226 sig_in_func_226 0 no sig_in_func226 1'd1 +227 sig_in_func_227 0 no sig_in_func227 1'd1 +235 pro_alonegpio_in0 0 no pro_alonegpio_out0 1'd1 +236 pro_alonegpio_in1 0 no pro_alonegpio_out1 1'd1 +237 pro_alonegpio_in2 0 no pro_alonegpio_out2 1'd1 +238 pro_alonegpio_in3 0 no pro_alonegpio_out3 1'd1 +239 pro_alonegpio_in4 0 no pro_alonegpio_out4 1'd1 +240 pro_alonegpio_in5 0 no pro_alonegpio_out5 1'd1 +241 pro_alonegpio_in6 0 no pro_alonegpio_out6 1'd1 +242 pro_alonegpio_in7 0 no pro_alonegpio_out7 1'd1 +251 - - - clk_i2s_mux 1'd1 diff --git a/Sming/Arch/Esp32/esp32s3-pindefs.txt b/Sming/Arch/Esp32/esp32s3-pindefs.txt index 7383d6dea8..0d60b85d27 100644 --- a/Sming/Arch/Esp32/esp32s3-pindefs.txt +++ b/Sming/Arch/Esp32/esp32s3-pindefs.txt @@ -110,60 +110,60 @@ signal input default direct_in output enable direct_out 9 SPID6_in 0 yes SPID6_out SPID6_oe yes 10 SPID7_in 0 yes SPID7_out SPID7_oe yes 11 SPIDQS_in 0 yes SPIDQS_out SPIDQS_oe yes -12 U0RXD_in 0 yes U0TXD_out 1’d1 yes -13 U0CTS_in 0 yes U0RTS_out 1’d1 yes -14 U0DSR_in 0 no U0DTR_out 1’d1 no -15 U1RXD_in 0 yes U1TXD_out 1’d1 yes -16 U1CTS_in 0 yes U1RTS_out 1’d1 yes -17 U1DSR_in 0 no U1DTR_out 1’d1 no -18 U2RXD_in 0 no U2TXD_out 1’d1 no -19 U2CTS_in 0 no U2RTS_out 1’d1 no -20 U2DSR_in 0 no U2DTR_out 1’d1 no -21 I2S1_MCLK_in 0 no I2S1_MCLK_out 1’d1 no -22 I2S0O_BCK_in 0 no I2S0O_BCK_out 1’d1 no -23 I2S0_MCLK_in 0 no I2S0_MCLK_out 1’d1 no -24 I2S0O_WS_in 0 no I2S0O_WS_out 1’d1 no -25 I2S0I_SD_in 0 no I2S0O_SD_out 1’d1 no -26 I2S0I_BCK_in 0 no I2S0I_BCK_out 1’d1 no -27 I2S0I_WS_in 0 no I2S0I_WS_out 1’d1 no -28 I2S1O_BCK_in 0 no I2S1O_BCK_out 1’d1 no -29 I2S1O_WS_in 0 no I2S1O_WS_out 1’d1 no -30 I2S1I_SD_in 0 no I2S1O_SD_out 1’d1 no -31 I2S1I_BCK_in 0 no I2S1I_BCK_out 1’d1 no -32 I2S1I_WS_in 0 no I2S1I_WS_out 1’d1 no -33 pcnt_sig_ch0_in0 0 no - 1’d1 no -34 pcnt_sig_ch1_in0 0 no - 1’d1 no -35 pcnt_ctrl_ch0_in0 0 no - 1’d1 - -36 pcnt_ctrl_ch1_in0 0 no - 1’d1 - -37 pcnt_sig_ch0_in1 0 no - 1’d1 - -38 pcnt_sig_ch1_in1 0 no - 1’d1 - -39 pcnt_ctrl_ch0_in1 0 no - 1’d1 - -40 pcnt_ctrl_ch1_in1 0 no - 1’d1 - -41 pcnt_sig_ch0_in2 0 no - 1’d1 - -42 pcnt_sig_ch1_in2 0 no - 1’d1 - -43 pcnt_ctrl_ch0_in2 0 no - 1’d1 - -44 pcnt_ctrl_ch1_in2 0 no - 1’d1 - -45 pcnt_sig_ch0_in3 0 no - 1’d1 - -46 pcnt_sig_ch1_in3 0 no - 1’d1 - -47 pcnt_ctrl_ch0_in3 0 no - 1’d1 - -48 pcnt_ctrl_ch1_in3 0 no - 1’d1 - -49 - - - - 1’d1 - -50 - - - - 1’d1 - -51 I2S0I_SD1_in 0 no - 1’d1 - -52 I2S0I_SD2_in 0 no - 1’d1 - -53 I2S0I_SD3_in 0 no - 1’d1 - -54 Core1_gpio_in7 0 no Core1_gpio_out7 1’d1 no -55 - - - - 1’d1 - -56 - - - - 1’d1 - -57 - - - - 1’d1 - -58 usb_otg_iddig_in 0 no - 1’d1 - -59 usb_otg_avalid_in 0 no - 1’d1 - -60 usb_srp_bvalid_in 0 no usb_otg_idpullup 1’d1 no -61 usb_otg_vbusvalid_in 0 no usb_otg_dppulldown 1’d1 no -62 usb_srp_sessend_in 0 no usb_otg_dmpulldown 1’d1 no -63 - - - usb_otg_drvvbus 1’d1 no -64 - - - usb_srp_chrgvbus 1’d1 no -65 - - - usb_srp_dischrgvbus 1’d1 no +12 U0RXD_in 0 yes U0TXD_out 1'd1 yes +13 U0CTS_in 0 yes U0RTS_out 1'd1 yes +14 U0DSR_in 0 no U0DTR_out 1'd1 no +15 U1RXD_in 0 yes U1TXD_out 1'd1 yes +16 U1CTS_in 0 yes U1RTS_out 1'd1 yes +17 U1DSR_in 0 no U1DTR_out 1'd1 no +18 U2RXD_in 0 no U2TXD_out 1'd1 no +19 U2CTS_in 0 no U2RTS_out 1'd1 no +20 U2DSR_in 0 no U2DTR_out 1'd1 no +21 I2S1_MCLK_in 0 no I2S1_MCLK_out 1'd1 no +22 I2S0O_BCK_in 0 no I2S0O_BCK_out 1'd1 no +23 I2S0_MCLK_in 0 no I2S0_MCLK_out 1'd1 no +24 I2S0O_WS_in 0 no I2S0O_WS_out 1'd1 no +25 I2S0I_SD_in 0 no I2S0O_SD_out 1'd1 no +26 I2S0I_BCK_in 0 no I2S0I_BCK_out 1'd1 no +27 I2S0I_WS_in 0 no I2S0I_WS_out 1'd1 no +28 I2S1O_BCK_in 0 no I2S1O_BCK_out 1'd1 no +29 I2S1O_WS_in 0 no I2S1O_WS_out 1'd1 no +30 I2S1I_SD_in 0 no I2S1O_SD_out 1'd1 no +31 I2S1I_BCK_in 0 no I2S1I_BCK_out 1'd1 no +32 I2S1I_WS_in 0 no I2S1I_WS_out 1'd1 no +33 pcnt_sig_ch0_in0 0 no - 1'd1 no +34 pcnt_sig_ch1_in0 0 no - 1'd1 no +35 pcnt_ctrl_ch0_in0 0 no - 1'd1 - +36 pcnt_ctrl_ch1_in0 0 no - 1'd1 - +37 pcnt_sig_ch0_in1 0 no - 1'd1 - +38 pcnt_sig_ch1_in1 0 no - 1'd1 - +39 pcnt_ctrl_ch0_in1 0 no - 1'd1 - +40 pcnt_ctrl_ch1_in1 0 no - 1'd1 - +41 pcnt_sig_ch0_in2 0 no - 1'd1 - +42 pcnt_sig_ch1_in2 0 no - 1'd1 - +43 pcnt_ctrl_ch0_in2 0 no - 1'd1 - +44 pcnt_ctrl_ch1_in2 0 no - 1'd1 - +45 pcnt_sig_ch0_in3 0 no - 1'd1 - +46 pcnt_sig_ch1_in3 0 no - 1'd1 - +47 pcnt_ctrl_ch0_in3 0 no - 1'd1 - +48 pcnt_ctrl_ch1_in3 0 no - 1'd1 - +49 - - - - 1'd1 - +50 - - - - 1'd1 - +51 I2S0I_SD1_in 0 no - 1'd1 - +52 I2S0I_SD2_in 0 no - 1'd1 - +53 I2S0I_SD3_in 0 no - 1'd1 - +54 Core1_gpio_in7 0 no Core1_gpio_out7 1'd1 no +55 - - - - 1'd1 - +56 - - - - 1'd1 - +57 - - - - 1'd1 - +58 usb_otg_iddig_in 0 no - 1'd1 - +59 usb_otg_avalid_in 0 no - 1'd1 - +60 usb_srp_bvalid_in 0 no usb_otg_idpullup 1'd1 no +61 usb_otg_vbusvalid_in 0 no usb_otg_dppulldown 1'd1 no +62 usb_srp_sessend_in 0 no usb_otg_dmpulldown 1'd1 no +63 - - - usb_otg_drvvbus 1'd1 no +64 - - - usb_srp_chrgvbus 1'd1 no +65 - - - usb_srp_dischrgvbus 1'd1 no 66 SPI3_CLK_in 0 no SPI3_CLK_out_mux SPI3_CLK_oe no 67 SPI3_Q_in 0 no SPI3_Q_out SPI3_Q_oe no 68 SPI3_D_in 0 no SPI3_D_out SPI3_D_oe no @@ -171,34 +171,34 @@ signal input default direct_in output enable direct_out 70 SPI3_WP_in 0 no SPI3_WP_out SPI3_WP_oe no 71 SPI3_CS0_in 0 no SPI3_CS0_out SPI3_CS0_oe no 72 - - - SPI3_CS1_out SPI3_CS1_oe no -73 ext_adc_start 0 no ledc_ls_sig_out0 1’d1 no -74 - - - ledc_ls_sig_out1 1’d1 no -75 - - - ledc_ls_sig_out2 1’d1 no -76 - - - ledc_ls_sig_out3 1’d1 no -77 - - - ledc_ls_sig_out4 1’d1 no -78 - - - ledc_ls_sig_out5 1’d1 no -79 - - - ledc_ls_sig_out6 1’d1 no -80 - - - ledc_ls_sig_out7 1’d1 no -81 rmt_sig_in0 0 no rmt_sig_out0 1’d1 no -82 rmt_sig_in1 0 no rmt_sig_out1 1’d1 no -83 rmt_sig_in2 0 no rmt_sig_out2 1’d1 no -84 rmt_sig_in3 0 no rmt_sig_out3 1’d1 no -85 - - - - 1’d1 - -86 - - - - 1’d1 - -87 - - - - 1’d1 - -88 - - - - 1’d1 - +73 ext_adc_start 0 no ledc_ls_sig_out0 1'd1 no +74 - - - ledc_ls_sig_out1 1'd1 no +75 - - - ledc_ls_sig_out2 1'd1 no +76 - - - ledc_ls_sig_out3 1'd1 no +77 - - - ledc_ls_sig_out4 1'd1 no +78 - - - ledc_ls_sig_out5 1'd1 no +79 - - - ledc_ls_sig_out6 1'd1 no +80 - - - ledc_ls_sig_out7 1'd1 no +81 rmt_sig_in0 0 no rmt_sig_out0 1'd1 no +82 rmt_sig_in1 0 no rmt_sig_out1 1'd1 no +83 rmt_sig_in2 0 no rmt_sig_out2 1'd1 no +84 rmt_sig_in3 0 no rmt_sig_out3 1'd1 no +85 - - - - 1'd1 - +86 - - - - 1'd1 - +87 - - - - 1'd1 - +88 - - - - 1'd1 - 89 I2CEXT0_SCL_in 1 no I2CEXT0_SCL_out I2CEXT0_SCL_oe no 90 I2CEXT0_SDA_in 1 no I2CEXT0_SDA_out I2CEXT0_SDA_oe no 91 I2CEXT1_SCL_in 1 no I2CEXT1_SCL_out I2CEXT1_SCL_oe no 92 I2CEXT1_SDA_in 1 no I2CEXT1_SDA_out I2CEXT1_SDA_oe no -93 - - - gpio_sd0_out 1’d1 no -94 - - - gpio_sd1_out 1’d1 no -95 - - - gpio_sd2_out 1’d1 no -96 - - - gpio_sd3_out 1’d1 no -97 - - - gpio_sd4_out 1’d1 no -98 - - - gpio_sd5_out 1’d1 no -99 - - - gpio_sd6_out 1’d1 no -100 - - - gpio_sd7_out 1’d1 no +93 - - - gpio_sd0_out 1'd1 no +94 - - - gpio_sd1_out 1'd1 no +95 - - - gpio_sd2_out 1'd1 no +96 - - - gpio_sd3_out 1'd1 no +97 - - - gpio_sd4_out 1'd1 no +98 - - - gpio_sd5_out 1'd1 no +99 - - - gpio_sd6_out 1'd1 no +100 - - - gpio_sd7_out 1'd1 no 101 FSPICLK_in 0 yes FSPICLK_out_mux FSPICLK_oe yes 102 FSPIQ_in 0 yes FSPIQ_out FSPIQ_oe yes 103 FSPID_in 0 yes FSPID_out FSPID_oe yes @@ -214,9 +214,9 @@ signal input default direct_in output enable direct_out 113 - - - FSPICS3_out FSPICS3_oe no 114 - - - FSPICS4_out FSPICS4_oe no 115 - - - FSPICS5_out FSPICS5_oe no -116 twai_rx 1 no twai_tx 1’d1 no -117 - - - twai_bus_off_on 1’d1 no -118 - - - twai_clkout 1’d1 no +116 twai_rx 1 no twai_tx 1'd1 no +117 - - - twai_bus_off_on 1'd1 no +118 - - - twai_clkout 1'd1 no 119 - - - SUBSPICLK_out_mux SUBSPICLK_oe no 120 SUBSPIQ_in 0 yes SUBSPIQ_out SUBSPIQ_oe yes 121 SUBSPID_in 0 yes SUBSPID_out SUBSPID_oe yes @@ -226,56 +226,56 @@ signal input default direct_in output enable direct_out 125 - - - SUBSPICS1_out SUBSPICS1_oe yes 126 - - - FSPIDQS_out FSPIDQS_oe yes 127 - - - SPI3_CS2_out SPI3_CS2_oe no -128 - - - I2S0O_SD1_out 1’d1 no -129 Core1_gpio_in0 0 no Core1_gpio_out0 1’d1 no -130 Core1_gpio_in1 0 no Core1_gpio_out1 1’d1 no -131 Core1_gpio_in2 0 no Core1_gpio_out2 1’d1 no -132 - - - LCD_CS 1’d1 no -133 CAM_DATA_in0 0 no LCD_DATA_out0 1’d1 no -134 CAM_DATA_in1 0 no LCD_DATA_out1 1’d1 no -135 CAM_DATA_in2 0 no LCD_DATA_out2 1’d1 no -136 CAM_DATA_in3 0 no LCD_DATA_out3 1’d1 no -137 CAM_DATA_in4 0 no LCD_DATA_out4 1’d1 no -138 CAM_DATA_in5 0 no LCD_DATA_out5 1’d1 no -139 CAM_DATA_in6 0 no LCD_DATA_out6 1’d1 no -140 CAM_DATA_in7 0 no LCD_DATA_out7 1’d1 no -141 CAM_DATA_in8 0 no LCD_DATA_out8 1’d1 no -142 CAM_DATA_in9 0 no LCD_DATA_out9 1’d1 no -143 CAM_DATA_in10 0 no LCD_DATA_out10 1’d1 no -144 CAM_DATA_in11 0 no LCD_DATA_out11 1’d1 no -145 CAM_DATA_in12 0 no LCD_DATA_out12 1’d1 no -146 CAM_DATA_in13 0 no LCD_DATA_out13 1’d1 no -147 CAM_DATA_in14 0 no LCD_DATA_out14 1’d1 no -148 CAM_DATA_in15 0 no LCD_DATA_out15 1’d1 no -149 CAM_PCLK 0 no CAM_CLK 1’d1 no -150 CAM_H_ENABLE 0 no LCD_H_ENABLE 1’d1 no -151 CAM_H_SYNC 0 no LCD_H_SYNC 1’d1 no -152 CAM_V_SYNC 0 no LCD_V_SYNC 1’d1 no -153 - - - LCD_DC 1’d1 no -154 - - - LCD_PCLK 1’d1 no +128 - - - I2S0O_SD1_out 1'd1 no +129 Core1_gpio_in0 0 no Core1_gpio_out0 1'd1 no +130 Core1_gpio_in1 0 no Core1_gpio_out1 1'd1 no +131 Core1_gpio_in2 0 no Core1_gpio_out2 1'd1 no +132 - - - LCD_CS 1'd1 no +133 CAM_DATA_in0 0 no LCD_DATA_out0 1'd1 no +134 CAM_DATA_in1 0 no LCD_DATA_out1 1'd1 no +135 CAM_DATA_in2 0 no LCD_DATA_out2 1'd1 no +136 CAM_DATA_in3 0 no LCD_DATA_out3 1'd1 no +137 CAM_DATA_in4 0 no LCD_DATA_out4 1'd1 no +138 CAM_DATA_in5 0 no LCD_DATA_out5 1'd1 no +139 CAM_DATA_in6 0 no LCD_DATA_out6 1'd1 no +140 CAM_DATA_in7 0 no LCD_DATA_out7 1'd1 no +141 CAM_DATA_in8 0 no LCD_DATA_out8 1'd1 no +142 CAM_DATA_in9 0 no LCD_DATA_out9 1'd1 no +143 CAM_DATA_in10 0 no LCD_DATA_out10 1'd1 no +144 CAM_DATA_in11 0 no LCD_DATA_out11 1'd1 no +145 CAM_DATA_in12 0 no LCD_DATA_out12 1'd1 no +146 CAM_DATA_in13 0 no LCD_DATA_out13 1'd1 no +147 CAM_DATA_in14 0 no LCD_DATA_out14 1'd1 no +148 CAM_DATA_in15 0 no LCD_DATA_out15 1'd1 no +149 CAM_PCLK 0 no CAM_CLK 1'd1 no +150 CAM_H_ENABLE 0 no LCD_H_ENABLE 1'd1 no +151 CAM_H_SYNC 0 no LCD_H_SYNC 1'd1 no +152 CAM_V_SYNC 0 no LCD_V_SYNC 1'd1 no +153 - - - LCD_DC 1'd1 no +154 - - - LCD_PCLK 1'd1 no 155 SUBSPID4_in 0 yes SUBSPID4_out SUBSPID4_oe no 156 SUBSPID5_in 0 yes SUBSPID5_out SUBSPID5_oe no 157 SUBSPID6_in 0 yes SUBSPID6_out SUBSPID6_oe no 158 SUBSPID7_in 0 yes SUBSPID7_out SUBSPID7_oe no 159 SUBSPIDQS_in 0 yes SUBSPIDQS_out SUBSPIDQS_oe no -160 pwm0_sync0_in 0 no pwm0_out0a 1’d1 no -161 pwm0_sync1_in 0 no pwm0_out0b 1’d1 no -162 pwm0_sync2_in 0 no pwm0_out1a 1’d1 no -163 pwm0_f0_in 0 no pwm0_out1b 1’d1 no -164 pwm0_f1_in 0 no pwm0_out2a 1’d1 no -165 pwm0_f2_in 0 no pwm0_out2b 1’d1 no -166 pwm0_cap0_in 0 no pwm1_out0a 1’d1 no -167 pwm0_cap1_in 0 no pwm1_out0b 1’d1 no -168 pwm0_cap2_in 0 no pwm1_out1a 1’d1 no -169 pwm1_sync0_in 0 no pwm1_out1b 1’d1 no -170 pwm1_sync1_in 0 no pwm1_out2a 1’d1 no -171 pwm1_sync2_in 0 no pwm1_out2b 1’d1 no -172 pwm1_f0_in 0 no sdhost_cclk_out_1 1’d1 no -173 pwm1_f1_in 0 no sdhost_cclk_out_2 1’d1 no -174 pwm1_f2_in 0 no sdhost_rst_n_1 1’d1 no -175 pwm1_cap0_in 0 no sdhost_rst_n_2 1’d1 no -176 pwm1_cap1_in 0 no sdhost_ccmd_od_pullup_en_n 1’d1 no -177 pwm1_cap2_in 0 no sdio_tohost_int_out 1’d1 no +160 pwm0_sync0_in 0 no pwm0_out0a 1'd1 no +161 pwm0_sync1_in 0 no pwm0_out0b 1'd1 no +162 pwm0_sync2_in 0 no pwm0_out1a 1'd1 no +163 pwm0_f0_in 0 no pwm0_out1b 1'd1 no +164 pwm0_f1_in 0 no pwm0_out2a 1'd1 no +165 pwm0_f2_in 0 no pwm0_out2b 1'd1 no +166 pwm0_cap0_in 0 no pwm1_out0a 1'd1 no +167 pwm0_cap1_in 0 no pwm1_out0b 1'd1 no +168 pwm0_cap2_in 0 no pwm1_out1a 1'd1 no +169 pwm1_sync0_in 0 no pwm1_out1b 1'd1 no +170 pwm1_sync1_in 0 no pwm1_out2a 1'd1 no +171 pwm1_sync2_in 0 no pwm1_out2b 1'd1 no +172 pwm1_f0_in 0 no sdhost_cclk_out_1 1'd1 no +173 pwm1_f1_in 0 no sdhost_cclk_out_2 1'd1 no +174 pwm1_f2_in 0 no sdhost_rst_n_1 1'd1 no +175 pwm1_cap0_in 0 no sdhost_rst_n_2 1'd1 no +176 pwm1_cap1_in 0 no sdhost_ccmd_od_pullup_en_n 1'd1 no +177 pwm1_cap2_in 0 no sdio_tohost_int_out 1'd1 no 178 sdhost_ccmd_in_1 1 no sdhost_ccmd_out_1 sdhost_ccmd_out_en_1 no 179 sdhost_ccmd_in_2 1 no sdhost_ccmd_out_2 sdhost_ccmd_out_en_2 no 180 sdhost_cdata_in_10 1 no sdhost_cdata_out_10 sdhost_cdata_out_en_10 no @@ -286,31 +286,31 @@ signal input default direct_in output enable direct_out 185 sdhost_cdata_in_15 1 no sdhost_cdata_out_15 sdhost_cdata_out_en_15 no 186 sdhost_cdata_in_16 1 no sdhost_cdata_out_16 sdhost_cdata_out_en_16 no 187 sdhost_cdata_in_17 1 no sdhost_cdata_out_17 sdhost_cdata_out_en_17 no -188 - - - - 1’d1 - -189 - - - - 1’d1 - -190 - - - - 1’d1 - -191 - - - - 1’d1 - -192 sdhost_data_strobe_1 0 no - 1’d1 - -193 sdhost_data_strobe_2 0 no - 1’d1 - -194 sdhost_card_detect_n_1 0 no - 1’d1 - -195 sdhost_card_detect_n_2 0 no - 1’d1 - -196 sdhost_card_write_prt_1 0 no - 1’d1 - -197 sdhost_card_write_prt_2 0 no - 1’d1 - -198 sdhost_card_int_n_1 0 no - 1’d1 - -199 sdhost_card_int_n_2 0 no - 1’d1 - -200 - - - - 1’d1 no -201 - - - - 1’d1 no -202 - - - - 1’d1 no -203 - - - - 1’d1 no -204 - - - - 1’d1 no -205 - - - - 1’d1 no -206 - - - - 1’d1 no -207 - - - - 1’d1 no -208 sig_in_func_208 0 no sig_in_func208 1’d1 no -209 sig_in_func_209 0 no sig_in_func209 1’d1 no -210 sig_in_func_210 0 no sig_in_func210 1’d1 no -211 sig_in_func_211 0 no sig_in_func211 1’d1 no -212 sig_in_func_212 0 no sig_in_func212 1’d1 no +188 - - - - 1'd1 - +189 - - - - 1'd1 - +190 - - - - 1'd1 - +191 - - - - 1'd1 - +192 sdhost_data_strobe_1 0 no - 1'd1 - +193 sdhost_data_strobe_2 0 no - 1'd1 - +194 sdhost_card_detect_n_1 0 no - 1'd1 - +195 sdhost_card_detect_n_2 0 no - 1'd1 - +196 sdhost_card_write_prt_1 0 no - 1'd1 - +197 sdhost_card_write_prt_2 0 no - 1'd1 - +198 sdhost_card_int_n_1 0 no - 1'd1 - +199 sdhost_card_int_n_2 0 no - 1'd1 - +200 - - - - 1'd1 no +201 - - - - 1'd1 no +202 - - - - 1'd1 no +203 - - - - 1'd1 no +204 - - - - 1'd1 no +205 - - - - 1'd1 no +206 - - - - 1'd1 no +207 - - - - 1'd1 no +208 sig_in_func_208 0 no sig_in_func208 1'd1 no +209 sig_in_func_209 0 no sig_in_func209 1'd1 no +210 sig_in_func_210 0 no sig_in_func210 1'd1 no +211 sig_in_func_211 0 no sig_in_func211 1'd1 no +212 sig_in_func_212 0 no sig_in_func212 1'd1 no 213 sdhost_cdata_in_20 1 no sdhost_cdata_out_20 sdhost_cdata_out_en_20 no 214 sdhost_cdata_in_21 1 no sdhost_cdata_out_21 sdhost_cdata_out_en_21 no 215 sdhost_cdata_in_22 1 no sdhost_cdata_out_22 sdhost_cdata_out_en_22 no @@ -319,38 +319,38 @@ signal input default direct_in output enable direct_out 218 sdhost_cdata_in_25 1 no sdhost_cdata_out_25 sdhost_cdata_out_en_25 no 219 sdhost_cdata_in_26 1 no sdhost_cdata_out_26 sdhost_cdata_out_en_26 no 220 sdhost_cdata_in_27 1 no sdhost_cdata_out_27 sdhost_cdata_out_en_27 no -221 pro_alonegpio_in0 0 no pro_alonegpio_out0 1’d1 no -222 pro_alonegpio_in1 0 no pro_alonegpio_out1 1’d1 no -223 pro_alonegpio_in2 0 no pro_alonegpio_out2 1’d1 no -224 pro_alonegpio_in3 0 no pro_alonegpio_out3 1’d1 no -225 pro_alonegpio_in4 0 no pro_alonegpio_out4 1’d1 no -226 pro_alonegpio_in5 0 no pro_alonegpio_out5 1’d1 no -227 pro_alonegpio_in6 0 no pro_alonegpio_out6 1’d1 no -228 pro_alonegpio_in7 0 no pro_alonegpio_out7 1’d1 no -229 - - - - 1’d1 - -230 - - - - 1’d1 - -231 - - - - 1’d1 - -232 - - - - 1’d1 - -233 - - - - 1’d1 - -234 - - - - 1’d1 - -235 - - - - 1’d1 - -236 - - - - 1’d1 - -237 - - - - 1’d1 - -238 - - - - 1’d1 - -239 - - - - 1’d1 - -240 - - - - 1’d1 - -241 - - - - 1’d1 - -242 - - - - 1’d1 - -243 - - - - 1’d1 - -244 - - - - 1’d1 - -245 - - - - 1’d1 - -246 - - - - 1’d1 - -247 - - - - 1’d1 - -248 - - - - 1’d1 - -249 - - - - 1’d1 - -250 - - - - 1’d1 - -251 usb_jtag_tdo_bridge 0 no usb_jtag_trst 1’d1 no -252 Core1_gpio_in3 0 no Core1_gpio_out3 1’d1 no -253 Core1_gpio_in4 0 no Core1_gpio_out4 1’d1 no -254 Core1_gpio_in5 0 no Core1_gpio_out5 1’d1 no -255 Core1_gpio_in6 0 no Core1_gpio_out6 1’d1 no +221 pro_alonegpio_in0 0 no pro_alonegpio_out0 1'd1 no +222 pro_alonegpio_in1 0 no pro_alonegpio_out1 1'd1 no +223 pro_alonegpio_in2 0 no pro_alonegpio_out2 1'd1 no +224 pro_alonegpio_in3 0 no pro_alonegpio_out3 1'd1 no +225 pro_alonegpio_in4 0 no pro_alonegpio_out4 1'd1 no +226 pro_alonegpio_in5 0 no pro_alonegpio_out5 1'd1 no +227 pro_alonegpio_in6 0 no pro_alonegpio_out6 1'd1 no +228 pro_alonegpio_in7 0 no pro_alonegpio_out7 1'd1 no +229 - - - - 1'd1 - +230 - - - - 1'd1 - +231 - - - - 1'd1 - +232 - - - - 1'd1 - +233 - - - - 1'd1 - +234 - - - - 1'd1 - +235 - - - - 1'd1 - +236 - - - - 1'd1 - +237 - - - - 1'd1 - +238 - - - - 1'd1 - +239 - - - - 1'd1 - +240 - - - - 1'd1 - +241 - - - - 1'd1 - +242 - - - - 1'd1 - +243 - - - - 1'd1 - +244 - - - - 1'd1 - +245 - - - - 1'd1 - +246 - - - - 1'd1 - +247 - - - - 1'd1 - +248 - - - - 1'd1 - +249 - - - - 1'd1 - +250 - - - - 1'd1 - +251 usb_jtag_tdo_bridge 0 no usb_jtag_trst 1'd1 no +252 Core1_gpio_in3 0 no Core1_gpio_out3 1'd1 no +253 Core1_gpio_in4 0 no Core1_gpio_out4 1'd1 no +254 Core1_gpio_in5 0 no Core1_gpio_out5 1'd1 no +255 Core1_gpio_in6 0 no Core1_gpio_out6 1'd1 no diff --git a/Sming/Arch/Esp8266/Components/driver/pwm.rst b/Sming/Arch/Esp8266/Components/driver/pwm.rst index a4e87d5259..fdcdbcb2f6 100644 --- a/Sming/Arch/Esp8266/Components/driver/pwm.rst +++ b/Sming/Arch/Esp8266/Components/driver/pwm.rst @@ -3,8 +3,8 @@ PWM: Pulse-Width Modulation The driver interface is defined in the ESP8266 SDK. -Build variables ---------------- +Configuration Variables +----------------------- .. envvar:: ENABLE_CUSTOM_PWM diff --git a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/app/dhcpserver.h b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/app/dhcpserver.h index b6f7a0b321..c84c4b79b3 100644 --- a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/app/dhcpserver.h +++ b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/app/dhcpserver.h @@ -5,7 +5,7 @@ typedef struct dhcps_state{ sint16_t state; } dhcps_state; -// ����dhcpclient�Զ����һ��DHCP msg�ṹ�� +// dhcpclient DHCP msg typedef struct dhcps_msg { uint8_t op, htype, hlen, hops; uint8_t xid[4]; diff --git a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/app/espconn.h b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/app/espconn.h index 992a06a57e..162b2ed0f0 100644 --- a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/app/espconn.h +++ b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/app/espconn.h @@ -228,7 +228,7 @@ extern sint8 espconn_create(struct espconn *espconn); /****************************************************************************** * FunctionName : espconn_tcp_get_max_con - * Description : get the number of simulatenously active TCP connections + * Description : get the number of simultaneously active TCP connections * Parameters : none * Returns : none *******************************************************************************/ @@ -237,7 +237,7 @@ extern uint8 espconn_tcp_get_max_con(void); /****************************************************************************** * FunctionName : espconn_tcp_set_max_con - * Description : set the number of simulatenously active TCP connections + * Description : set the number of simultaneously active TCP connections * Parameters : num -- total number * Returns : none *******************************************************************************/ @@ -245,7 +245,7 @@ extern uint8 espconn_tcp_get_max_con(void); extern sint8 espconn_tcp_set_max_con(uint8 num); /****************************************************************************** * FunctionName : espconn_tcp_get_max_con_allow - * Description : get the count of simulatenously active connections on the server + * Description : get the count of simultaneously active connections on the server * Parameters : espconn -- espconn to get the count * Returns : result *******************************************************************************/ @@ -254,7 +254,7 @@ extern sint8 espconn_tcp_get_max_con_allow(struct espconn *espconn); /****************************************************************************** * FunctionName : espconn_tcp_set_max_con_allow - * Description : set the count of simulatenously active connections on the server + * Description : set the count of simultaneously active connections on the server * Parameters : espconn -- espconn to set the count * Returns : result *******************************************************************************/ diff --git a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/icmp.h b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/icmp.h index 9bcb7bc439..62f0ae1908 100644 --- a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/icmp.h +++ b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/icmp.h @@ -74,9 +74,6 @@ enum icmp_te_type { * is splitted to two u16_t like ICMP echo needs it. * This header is also used for other ICMP types that do not * use the data part. - * ICMPײṹ - * ICMPײкܴԣ - * ýṹͬICMPġ */ PACK_STRUCT_BEGIN struct icmp_echo_hdr { @@ -91,11 +88,11 @@ PACK_STRUCT_END # include "arch/epstruct.h" #endif -//ȡICMPײֶ +// ICMP #define ICMPH_TYPE(hdr) ((hdr)->type) #define ICMPH_CODE(hdr) ((hdr)->code) -/** Combines type and code to an u16_t ICMPײֶдӦֵ*/ +/** Combines type and code to an u16_t ICMP */ #define ICMPH_TYPE_SET(hdr, t) ((hdr)->type = (t)) #define ICMPH_CODE_SET(hdr, c) ((hdr)->code = (c)) diff --git a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/netif.h b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/netif.h index 8bf1375210..eb1cda3f03 100644 --- a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/netif.h +++ b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/netif.h @@ -143,15 +143,15 @@ struct netif { ip_addr_t gw; /** This function is called by the network device driver - * to pass a packet up the TCP/IP stack. IPݰ*/ + * to pass a packet up the TCP/IP stack. */ netif_input_fn input; /** This function is called by the IP module when it wants * to send a packet on the interface. This function typically - * first resolves the hardware address, then sends the packet. IPݰ*/ + * first resolves the hardware address, then sends the packet. */ netif_output_fn output; /** This function is called by the ARP module when it wants * to send a packet on the interface. This function outputs - * the pbuf as-is on the link medium. ײݰ*/ + * the pbuf as-is on the link medium. */ netif_linkoutput_fn linkoutput; #if LWIP_NETIF_STATUS_CALLBACK /** This function is called when the netif state is set to up or down @@ -164,7 +164,7 @@ struct netif { netif_status_callback_fn link_callback; #endif /* LWIP_NETIF_LINK_CALLBACK */ /** This field can be set by the device driver and could point - * to state information for the device. ֶΣָײ豸Ϣ*/ + * to state information for the device. */ void *state; #if LWIP_DHCP /** the DHCP client state information for this netif */ @@ -178,17 +178,17 @@ struct netif { /* the hostname for this netif, NULL is a valid value */ char* hostname; #endif /* LWIP_NETIF_HOSTNAME */ - /** maximum transfer unit (in bytes) ýӿݰȣ1500*/ + /** maximum transfer unit (in bytes) 1500*/ u16_t mtu; - /** number of bytes used in hwaddrýӿַ */ + /** number of bytes used in hwaddr */ u8_t hwaddr_len; - /** link level hardware address of this interface ýӿַ*/ + /** link level hardware address of this interface */ u8_t hwaddr[NETIF_MAX_HWADDR_LEN]; - /** flags (see NETIF_FLAG_ above) ýӿ״ֶ̬*/ + /** flags (see NETIF_FLAG_ above) */ u8_t flags; - /** descriptive abbreviation ýӿڵ*/ + /** descriptive abbreviation */ char name[2]; - /** number of this interface ýӿڵı*/ + /** number of this interface */ u8_t num; #if LWIP_SNMP /** link type (from "snmp_ifType" enum from snmp.h) */ @@ -216,9 +216,9 @@ struct netif { u8_t *addr_hint; #endif /* LWIP_NETIF_HWADDRHINT */ #if ENABLE_LOOPBACK - /* List of packets to be queued for ourselves. ָ͸Լݰpbuf*/ - struct pbuf *loop_first;//һ - struct pbuf *loop_last;//һ + /* List of packets to be queued for ourselves. */ + struct pbuf *loop_first; + struct pbuf *loop_last; #if LWIP_LOOPBACK_MAX_PBUFS u16_t loop_cnt_current; #endif /* LWIP_LOOPBACK_MAX_PBUFS */ diff --git a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/opt.h b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/opt.h index 8240363ae6..3713821306 100644 --- a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/opt.h +++ b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/opt.h @@ -244,7 +244,7 @@ #endif /** - * MEMP_NUM_TCP_PCB: the number of simulatenously active TCP connections. + * MEMP_NUM_TCP_PCB: the number of simultaneously active TCP connections. * (requires the LWIP_TCP option) */ #ifndef MEMP_NUM_TCP_PCB diff --git a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/sys.h b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/sys.h index 9536aa82d5..1278836687 100644 --- a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/sys.h +++ b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/sys.h @@ -165,7 +165,7 @@ void sys_msleep(u32_t ms); /* only has a (close to) 1 jiffy resolution. */ /** Create a new mbox of specified size * @param mbox pointer to the mbox to create - * @param size (miminum) number of messages in this mbox + * @param size (minimum) number of messages in this mbox * @return ERR_OK if successful, another err_t otherwise */ err_t sys_mbox_new(sys_mbox_t *mbox, int size); /** Post a message to an mbox - may not fail diff --git a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/tcp_impl.h b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/tcp_impl.h index e9e3c7096d..1857dba6de 100644 --- a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/tcp_impl.h +++ b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/tcp_impl.h @@ -156,14 +156,14 @@ u32_t tcp_update_rcv_ann_wnd(struct tcp_pcb *pcb)ICACHE_FLASH_ATTR; #endif PACK_STRUCT_BEGIN struct tcp_hdr { - PACK_STRUCT_FIELD(u16_t src); //Դ�˿� - PACK_STRUCT_FIELD(u16_t dest); //Ŀ�Ķ˿� - PACK_STRUCT_FIELD(u32_t seqno); //��� - PACK_STRUCT_FIELD(u32_t ackno); //Ӧ����� - PACK_STRUCT_FIELD(u16_t _hdrlen_rsvd_flags);//�ײ�����+����λ+��־λ - PACK_STRUCT_FIELD(u16_t wnd); //���ڴ�С - PACK_STRUCT_FIELD(u16_t chksum); //У��� - PACK_STRUCT_FIELD(u16_t urgp); //����ָ�� + PACK_STRUCT_FIELD(u16_t src); + PACK_STRUCT_FIELD(u16_t dest); + PACK_STRUCT_FIELD(u32_t seqno); + PACK_STRUCT_FIELD(u32_t ackno); + PACK_STRUCT_FIELD(u16_t _hdrlen_rsvd_flags); + PACK_STRUCT_FIELD(u16_t wnd); + PACK_STRUCT_FIELD(u16_t chksum); + PACK_STRUCT_FIELD(u16_t urgp); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES diff --git a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/udp.h b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/udp.h index cb53d33e70..0872a75528 100644 --- a/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/udp.h +++ b/Sming/Arch/Esp8266/Components/esp-lwip/include/lwip/udp.h @@ -115,7 +115,7 @@ struct udp_pcb { /** user-supplied argument for the recv callback */ void *recv_arg; }; -/* udp_pcbs export for exernal reference (e.g. SNMP agent) */ +/* udp_pcbs export for external reference (e.g. SNMP agent) */ extern struct udp_pcb *udp_pcbs; /* The following functions is the application layer interface to the diff --git a/Sming/Arch/Esp8266/Components/esp-lwip/mem_manager.h b/Sming/Arch/Esp8266/Components/esp-lwip/mem_manager.h index d3007fd043..3e1f6ae515 100644 --- a/Sming/Arch/Esp8266/Components/esp-lwip/mem_manager.h +++ b/Sming/Arch/Esp8266/Components/esp-lwip/mem_manager.h @@ -13,7 +13,7 @@ #include -/*------------------------��������------------------------*/ +/*------------------------------------------------*/ #define MPU_WRAPPERS_INCLUDED_FROM_API_FILE #ifndef IOT_SIP_MODE @@ -71,7 +71,7 @@ static const unsigned short heapSTRUCT_SIZE = ( sizeof( xBlockLink ) + portBYTE_ //static size_t xFreeBytesRemaining = ( ( size_t ) configADJUSTED_HEAP_SIZE ) & ( ( size_t ) ~portBYTE_ALIGNMENT_MASK ); -/*------------------------��������-----------------------------------*/ +/*-----------------------------------------------------------*/ //static void prvInsertBlockIntoFreeList( xBlockLink *pxBlockToInsert ) ;//ICACHE_FLASH_ATTR; diff --git a/Sming/Arch/Esp8266/Components/esp8266/README.rst b/Sming/Arch/Esp8266/Components/esp8266/README.rst index b669164ba7..1466bcdefb 100644 --- a/Sming/Arch/Esp8266/Components/esp8266/README.rst +++ b/Sming/Arch/Esp8266/Components/esp8266/README.rst @@ -10,6 +10,9 @@ Sming uses libraries from the ESP8266 NON-OS SDK version 3, imported as a submod The header and linker files are provided by this Component. +Configuration variables +----------------------- + .. envvar:: ENABLE_CUSTOM_PHY Default: undefined (off) @@ -30,5 +33,22 @@ The header and linker files are provided by this Component. See :cpp:struct:`PhyInitData` for further details. +.. envvar:: FLASH_INIT_DATA + + Read-only. This is the path to the default PHY data written to the ``phy_init`` partition. + It is provided by the SDK. + + +.. envvar:: FLASH_INIT_DATA_VCC + + Read-only. This is the path to a modified version of the default PHY data selected + by the ``vdd`` hardware configuration option. See :doc:`/information/tips-n-tricks`. + + The modification is equivalent to calling :cpp:func:`PhyInitData::set_vdd33_const` with ``0xff``. + + +API reference +------------- + .. doxygenstruct:: PhyInitData :members: diff --git a/Sming/Arch/Esp8266/Components/esp8266/include/esp_phy.h b/Sming/Arch/Esp8266/Components/esp8266/include/esp_phy.h index a5d105b21d..d750da229b 100644 --- a/Sming/Arch/Esp8266/Components/esp8266/include/esp_phy.h +++ b/Sming/Arch/Esp8266/Components/esp8266/include/esp_phy.h @@ -211,7 +211,7 @@ struct PhyInitData { * This option is to share crystal clock for BT * @param value The state of Crystal during sleeping: * - 0: Off - * - 1: Forceably On + * - 1: Forcibly On * - 2: Automatically On according to XPD_DCDC * - 3: Automatically On according to GPIO2 */ @@ -270,7 +270,7 @@ struct PhyInitData { /** * @brief Set attenuation of BB gain - * @param value Attentuation in 0.25dB steps. Max valve is 24 (-6dB): + * @param value Attenuation in 0.25dB steps. Max valve is 24 (-6dB): * - 0: 0dB * - 1: -0.25dB * - 2: -0.5dB @@ -319,7 +319,8 @@ struct PhyInitData { * - analogRead function: `system_adc_read()` * - Only available when wire TOUT pin 17 to external circuitry, Input Voltage Range restricted to 0 ~ 1.0V. * - For this function the vdd33_const must be set as real power voltage of VDD3P3 pin 3 and 4 - * - The range of operating voltage of ESP8266 is 1.8V ~ 3.6V,the unit of vdd33_const is 0.1V, so effective value range of vdd33_const is [18, 36]. + * - The range of operating voltage of ESP8266 is 1.8V ~ 3.6V, + * the unit of vdd33_const is 0.1V, so effective value range of vdd33_const is [18, 36]. * - getVcc function: `system_get_vdd33()` * - Only available when TOUT pin 17 is suspended (floating), this function measure the power voltage of VDD3P3 pin 3 and 4 * - For this function the vdd33_const must be set to 255 (0xFF). diff --git a/Sming/Arch/Esp8266/Components/gdbstub/README.rst b/Sming/Arch/Esp8266/Components/gdbstub/README.rst index 6ca13e1e46..56adc75b56 100644 --- a/Sming/Arch/Esp8266/Components/gdbstub/README.rst +++ b/Sming/Arch/Esp8266/Components/gdbstub/README.rst @@ -9,16 +9,15 @@ This is a rewrite of gdbstub based on the To use the GNU Debugger (GDB) with Sming requires your application to include some code (``gdbstub``) which communicates via the serial port. -On the ESP8266 only UART0 may be used for this as UART1 is -transmit-only. +On the ESP8266 only UART0 may be used for this as UART1 is transmit-only. -The gdbstub code will only be built if you specify :envvar:`ENABLE_GDB` -=1 when compiling your application. At startup, before your init() +The gdbstub code will only be built if you specify :envvar:`ENABLE_GDB=1 ` +when compiling your application. At startup, before your init() function is called, it will claim UART0 so your application will be unable to use it directly. Therefore, the default port for ``Serial`` is changed to ``UART2``. -UART2 is a ‘virtual’ serial port to enable serial communications to work +UART2 is a 'virtual' serial port to enable serial communications to work correctly when GDB-enabled. Read/write calls and serial callbacks are handled via gdbstub. Baud rate changes affect UART0 directly. @@ -29,30 +28,13 @@ Refer to the official `GDB documentation `__ for further details. -GDB ---- - -This is the application which runs on your development system and talks -to ``gdbstub``. - -- Linux: A version of this should be available in - ``$ESP_HOME/xtensa-lx106-elf/bin/xtensa-lx106-elf-gdb`` - -- Windows: At time of writing, UDK doesn’t provide a GDB application - - Download and run the executable installer at `SysProgs `__ - - - Copy the - ``C:\SysGCC\esp8266\opt\xtensa-lx106-elf\bin\xtensa-lx106-elf-gdb.exe`` - to a suitable location. - -- Mac: ? Usage ----- - Configure gdbstub by editing ``gdbstub-cfg.h`` as required. You can also configure the options by setting ::envvar:`USER_CFLAGS` in - your project’s ``component.mk`` file. e.g + your project's ``component.mk`` file. e.g ``USER_CFLAGS=-DGDBSTUB_BREAK_ON_INIT=0``. - Optional: Add ``gdb_do_break()`` statements to your application. - Run ``make clean``, then ``make ENABLE_GDB=1 flash`` to build and @@ -91,6 +73,8 @@ To run manually, see the following variables which you can inspect using ``make .. envvar:: GDB Path to the GDB executable being used. + This is the application which runs on your development system and talks to ``gdbstub``. + It is provided in the standard toolchain. .. _useful-gdb-commands: @@ -146,8 +130,7 @@ Eclipse Windows: - Ensure ``Use external console for inferior`` is checked. -- In connection settings, specify COM port like with leading /, - e.g. \ ``/COM4`` +- In connection settings, specify COM port like with leading /, e.g. ``/COM4`` Problems connecting? @@ -166,7 +149,7 @@ example reading input from the GDB command prompt. See the :sample:`LiveDebug` sample for a demonstration. Note that system calls are disabled in the default configuration, so set -:c:macro:`GDBSTUB_ENABLE_SYSCALL` =1 to use this feature with your +:c:macro:`GDBSTUB_ENABLE_SYSCALL=1 ` to use this feature with your application. Known Issues and Limitations @@ -185,17 +168,17 @@ Known Issues and Limitations data while the debugger has stopped the CPU, it is bound to crash. This will happen mostly when working with UDP and/or ICMP; TCP-connections in general will not send much more data when the - other side doesn’t send any ACKs. + other side doesn't send any ACKs. - Solution: In such situations avoid pausing the debugger for extended periods -- Software breakpoints/watchpoints (‘break’ and ‘watch’) don’t work on flash code +- Software breakpoints/watchpoints ('break' and 'watch') don't work on flash code - Cause: GDB handles these by replacing code with a debugging instruction, therefore the code must be in RAM. - - Solution: Use hardware breakpoint (‘hbreak’) or use + - Solution: Use hardware breakpoint ('hbreak') or use :c:macro:`GDB_IRAM_ATTR` for code which requires testing -- If hardware breakpoint is set, single-stepping won’t work unless code is in RAM. +- If hardware breakpoint is set, single-stepping won't work unless code is in RAM. - Cause: GDB reverts to software breakpoints if no hardware breakpoints are available - Solution: Delete hardware breakpoint before single-stepping @@ -206,32 +189,32 @@ Known Issues and Limitations - Solution: Use the timer in non-maskable mode, or enable :c:macro:`GDBSTUB_PAUSE_HARDWARE_TIMER` option -- If gdbstub isn’t initialised then UART2 won’t work, though initialisation will succeed +- If gdbstub isn't initialised then UART2 won't work, though initialisation will succeed - Cause: By design, uart callbacks can be registered for UART2 at any time, before or after initialisation - Solution: Not really an issue, just something to be aware of -- Error reported, “packet reply is too long” +- Error reported, "packet reply is too long" - Cause: Mismatch between GDB version and stub code - - Solution: Set :c:macro:`GDBSTUB_GDB_PATCHED` =1 or use an + - Solution: Set :c:macro:`GDBSTUB_GDB_PATCHED=1 ` or use an unpatched version of GDB - Whilst GDB is attached, input cannot be passed to application - Cause: GDB buffers keystrokes and replays them only when the - target is interrupted (e.g. via ctrl+C), rather than passing them + target is interrupted (e.g. via ctrl+C), rather than passing them via serial connection. - Solution: Application may use gdb_syscall interface to communicate with debugger. See ``$(SMING_HOME)/system/gdb_syscall.h``, and :sample:`LiveDebug` sample. -- No apparent way to have second ‘console’ (windows terminology) separate from GDB interface +- No apparent way to have second 'console' (windows terminology) separate from GDB interface - Cause: Unknown - Solution: Is this possible with remote targets? -- GDB (in Windows) doesn’t respond at all to Ctrl+C +- GDB (in Windows) doesn't respond at all to Ctrl+C - Cause: Unknown - - Solution: Press Ctrl+Break to ‘hard kill’ GDB. You'll probably + - Solution: Press Ctrl+Break to 'hard kill' GDB. You'll probably need to do the next step as well to get it back - When GDB is running under windows, appears to hang when target reset or restarted @@ -244,7 +227,7 @@ Known Issues and Limitations - quit terminal - run GDB again ``make gdb`` -- Debug messages don’t appear in Eclipse +- Debug messages don't appear in Eclipse - Cause: Unknown - Solution: Use command-line GDB, or a better visual debugger diff --git a/Sming/Arch/Esp8266/Components/gdbstub/gdbstub.cpp b/Sming/Arch/Esp8266/Components/gdbstub/gdbstub.cpp index b563af1e06..79cb67eb89 100644 --- a/Sming/Arch/Esp8266/Components/gdbstub/gdbstub.cpp +++ b/Sming/Arch/Esp8266/Components/gdbstub/gdbstub.cpp @@ -17,10 +17,10 @@ * * Note from GDB manual: * - * At a minimum, a stub is required to support the ‘g’ and ‘G’ commands for register access, - * and the ‘m’ and ‘M’ commands for memory access. Stubs that only control single-threaded - * targets can implement run control with the ‘c’ (continue), and ‘s’ (step) commands. Stubs - * that support multi-threading targets should support the ‘vCont’ command. All other commands + * At a minimum, a stub is required to support the 'g' and 'G' commands for register access, + * and the 'm' and 'M' commands for memory access. Stubs that only control single-threaded + * targets can implement run control with the 'c' (continue), and 's' (step) commands. Stubs + * that support multi-threading targets should support the 'vCont' command. All other commands * are optional. * *********************************************************************************/ diff --git a/Sming/Arch/Esp8266/Components/libc/README.rst b/Sming/Arch/Esp8266/Components/libc/README.rst index 9c35198999..c19afff410 100644 --- a/Sming/Arch/Esp8266/Components/libc/README.rst +++ b/Sming/Arch/Esp8266/Components/libc/README.rst @@ -3,6 +3,5 @@ Esp8266 LIBC Component .. highlight:: bash -This Component accommodates the differences in runtime libraries for the various supported toolchains. - +This Component supports integration of the standard C library provided by the compiler toolchain. See also :doc:`/arch/esp8266/getting-started/eqt`. diff --git a/Sming/Arch/Esp8266/Components/lwip2/README.rst b/Sming/Arch/Esp8266/Components/lwip2/README.rst index c1a5d22606..046e80905f 100644 --- a/Sming/Arch/Esp8266/Components/lwip2/README.rst +++ b/Sming/Arch/Esp8266/Components/lwip2/README.rst @@ -2,7 +2,11 @@ Esp8266 LWIP Version 2 ====================== This Component implements the current Version 2 LWIP stack. -Note that at present espconn\_* functions are not supported. + +.. note:: + + Prior to :pull_request:`2793`, ``espconn_*`` functions were unsupported, but their current status is unclear. + Please `raise an issue `__ if you require these and encounter problems. .. envvar:: TCP_MSS @@ -21,7 +25,7 @@ Note that at present espconn\_* functions are not supported. If anyone knows of an actual reference for this setting, link here please! - Looking at glue-lwip/arduino/lwipopts.h, setting ``LWIP_FEATURES`` to 1 enables these LWIP flags: + Looking at glue-lwip/arduino/lwipopts.h, setting :envvar:`LWIP_FEATURES=1 ` enables these LWIP flags: - IP_FORWARD - IP_REASSEMBLY diff --git a/Sming/Arch/Esp8266/Components/sming-arch/README.rst b/Sming/Arch/Esp8266/Components/sming-arch/README.rst index 347b8fa54b..91cf0d42d1 100644 --- a/Sming/Arch/Esp8266/Components/sming-arch/README.rst +++ b/Sming/Arch/Esp8266/Components/sming-arch/README.rst @@ -30,28 +30,13 @@ controlled by the :envvar:`ENABLE_CUSTOM_LWIP` setting. 1 (default) Use custom compiled :component-esp8266:`esp-open-lwip` stack. Compared with the Espressif stack, this uses less RAM but - consumes FLASH (program) memory. All espconn\_* functions are turned off by default, so if you require these add - the :envvar:`ENABLE_ESPCONN` =1 directive. The :sample:`Basic_SmartConfig` example sets this in its ``component.mk`` - file. + consumes FLASH (program) memory. All ``espconn_*`` functions are turned off by default, so if you require these add + the :envvar:`ENABLE_ESPCONN=1 ` directive. + The :sample:`Basic_SmartConfig` example sets this in its ``component.mk`` file. 2 - Use :component-esp8266:`lwip2` stack. This does not have support for espconn\_* functions. + Use :component-esp8266:`lwip2` stack. This does not have support for ``espconn_*`` functions. .. envvar:: ENABLE_LWIP_DEBUG By default, some debug information will be printed for critical errors and situations. Set this to 1 to enable printing of all debug information. - - -Interactive debugging on the device ------------------------------------ - -.. envvar:: ENABLE_GDB - - In order to be able to debug live directly on the ESP8266 microcontroller you - should re-compile your application with ``ENABLE_GDB=1`` directive. - - undefined (default) - Compile normally - 1 - Compile with debugging support provided by :component-esp8266:`gdbstub`. - See also the :sample:`LiveDebug` sample. diff --git a/Sming/Arch/Esp8266/README.rst b/Sming/Arch/Esp8266/README.rst index a001a3c628..d2611da48a 100644 --- a/Sming/Arch/Esp8266/README.rst +++ b/Sming/Arch/Esp8266/README.rst @@ -3,14 +3,54 @@ Sming Esp8266 Architecture Support building Sming for the Esp8266 architecture. -See also :doc:`/arch/esp8266/getting-started/eqt`. +This is the SOC for which Sming was originally developed, +so many of the low-level API calls reflect those in the +`SDK `. +These include functions such as +:c:func:`system_get_free_heap_size`, +:c:func:`system_update_cpu_freq`, +:c:func:`system_get_cpu_freq`, +:c:func:`esp_get_ccount` +and others. -Build variables ---------------- +The Esp8266 is the device which popularised 32-bit microcontrollers +with integrated WiFi capability, the so-called +`System on a chip `__ (SoC). + +Compared with more recent offerings such as the +:doc:`ESP32 ` and +:doc:`RP2040 `, +it has characteristics which require special consideration: + +Limited RAM + Typically around 50 KiB of RAM is available for user applications, + compared with over 200 KiB for the Rp2040 and 300 KiB for the Esp32. + Although applications not requiring WiFi can recover another 30 KiB + via :component:`esp_no_wifi`, careful use of RAM is a primary consideration. + See :doc:`/information/memory`. +Word-aligned SPI flash accesses + Flash memory is relatively plentiful, provided via high-speed serial SPI. + Because it is not internal to the SoC, the Esp8266 (and others) have hardware which + supports mapping areas of external memory into the address space so that + code and data can be accessed using standard machine instructions. + The Esp8266 has a particular quirk in that all such accesses must be + properly aligned to 32-bit word boundaries; failure to do this crashes the + system. + Other microcontrollers have better caching which handles misaligned accesses + without issue. See :doc:`/information/flash'. +Weak hardware peripheral support + Even compared to older Atmel or Microchip 8-bit microcontrollers, + hardware support for interfaces such as I2C and PWM is lacking and these must + be implemented in software. + + +Configuration Variables +----------------------- .. envvar:: ESP_HOME This contains the base directory for the toolchain used to build the framework. + See also :doc:`/arch/esp8266/getting-started/eqt`. Components diff --git a/Sming/Arch/Host/Components/driver/uart.rst b/Sming/Arch/Host/Components/driver/uart.rst index ea635a9846..1c89671bcf 100644 --- a/Sming/Arch/Host/Components/driver/uart.rst +++ b/Sming/Arch/Host/Components/driver/uart.rst @@ -12,8 +12,8 @@ or directly to local host serial device (e.g. /dev/ttyUSB0, COM4, etc.) If not otherwise reassigned, UART0 output is sent to the console and keyboard input is written to the UART0 receive queue. -Build variables ---------------- +Configuration Variables +----------------------- .. envvar:: ENABLE_HOST_UARTID @@ -63,14 +63,14 @@ Now start a telnet session for each serial port, in separate command windows:: In the application window, press Enter. This behaviour is enabled by the ``pause`` option, which stops the emulator after initialisation so -telnet can connect to it. Without ``pause`` you’ll lose any serial +telnet can connect to it. Without ``pause`` you'll lose any serial output at startup.) .. note:: For Windows users, ``putty`` is a good alternative to telnet. It also has options for things like carriage-return/linefeed translation - (“\\n” -> “\\r\\n`”). Run using:: + ("\\n" -> "\\r\\n"). Run using:: putty telnet://localhost:10000 diff --git a/Sming/Arch/Host/Components/gdbstub/README.rst b/Sming/Arch/Host/Components/gdbstub/README.rst index e0414fc28c..ac2d01f424 100644 --- a/Sming/Arch/Host/Components/gdbstub/README.rst +++ b/Sming/Arch/Host/Components/gdbstub/README.rst @@ -1,10 +1,16 @@ GDB Stub for Host ================= -This defines the command line to use when ``make gdb`` is run. No additional code is required to debug for the Host. +This defines command lines to run Host debuggers, either the GNU debugger:: -If you want to debug your application while having a separate UART then make sure to send the following commands to your debugger:: + make gdb - handle SIGUSR1 nostop noprint +Or LLVM debugger:: -This component provides also ``gdbinit`` file containing the optimal settings needed for debugging. + make lldb + +Generally the GNU debugger is used but for MacOS lldb is the default. + +This Component also provides default settings for each in the ``gdbcmds`` and ``lldbcmds`` files. + +See :doc:`/debugging/host/index`. diff --git a/Sming/Arch/Host/Components/heap/README.rst b/Sming/Arch/Host/Components/heap/README.rst index a8ea0dac75..83a292391e 100644 --- a/Sming/Arch/Host/Components/heap/README.rst +++ b/Sming/Arch/Host/Components/heap/README.rst @@ -1,5 +1,5 @@ -Heap -==== +Host Heap support +================= This Component implements heap-related housekeeping functions. Heap usage is tracked using :component:`malloc_count`. This also provides some validation (using *sentinels* to detect if memory blocks are overwritten). diff --git a/Sming/Arch/Host/Components/libc/README.rst b/Sming/Arch/Host/Components/libc/README.rst index 57bd3a21eb..7d28c40fb7 100644 --- a/Sming/Arch/Host/Components/libc/README.rst +++ b/Sming/Arch/Host/Components/libc/README.rst @@ -1,4 +1,4 @@ -libc -==== +Host libc +========= Contains implementations of any non-standard C library functions. diff --git a/Sming/Arch/Host/Components/spi_flash/README.rst b/Sming/Arch/Host/Components/spi_flash/README.rst index 4a427923ed..83047814a1 100644 --- a/Sming/Arch/Host/Components/spi_flash/README.rst +++ b/Sming/Arch/Host/Components/spi_flash/README.rst @@ -1,5 +1,5 @@ -SPI Flash -========= +SPI Flash Emulation +=================== This Component emulates an embedded flash memory device using a backing file. It includes additional checks on addresses, sizes and alignments to detect common issues which can be more difficult to find diff --git a/Sming/Arch/Host/Components/vflash/README.rst b/Sming/Arch/Host/Components/vflash/README.rst index 5fa2f06fa0..4dcdd4a8ae 100644 --- a/Sming/Arch/Host/Components/vflash/README.rst +++ b/Sming/Arch/Host/Components/vflash/README.rst @@ -6,8 +6,8 @@ Flash memory access is emulated using :component-host:`spi_flash`. This Component implements make targets to operate on the flash backing file in a similar way to flashing a real device. -Build Variables ---------------- +Configuration Variables +----------------------- The following options are interpreted and used to provide command-line parameters to the emulator executable: diff --git a/Sming/Arch/Host/README.rst b/Sming/Arch/Host/README.rst index 532c38cbb0..8380b64c43 100644 --- a/Sming/Arch/Host/README.rst +++ b/Sming/Arch/Host/README.rst @@ -7,7 +7,7 @@ Summary ------- Allows Sming applications to be built as an executable to run on the -development host (Windows or Linux). +development host (Windows, Linux or MacOS). This is a source-level emulator for developing and testing new framework code prior to flashing a real device. @@ -15,39 +15,192 @@ code prior to flashing a real device. This is not a machine emulator; if you need something operating at a lower level take a look at `QEMU `__. +The design goals for Host builds are: + +- Simplify development of complex applications +- Enable use of advanced testing and code quality tools (valgrind, code sanitizers) +- Support CI testing by actually executing code, not just building it + + Requirements ------------ -``CMake`` is required to build LWIP +``CMake`` and ``Ninja`` are required to build some libraries (e.g. lwip). + +Tested compilers: + +- GCC version 8 or later +- Clang version 15 or later +- Apple-clang version 14 or later + +.. _linux_requirements: + +Linux +~~~~~ + +Host executables can be built in 32-bit emulation mode, which is the default for Linux. +This requires installation of 32-bit runtime libraries. +For debian/ubuntu:: + + sudo apt install g++-multilib -Ensure you are using relatively recent compilers, with 32-bit libraries available. +For Fedora:: -For Linux, you may require the ``gcc-multilib`` and ``g++-multilib`` -packages to build 32-bit executables on a 64-bit OS. + sudo dnf install glibc-devel.i686 libstdc++.i686 + +Alternatively set :envvar:`BUILD64` to 1 to build in native 64-bit mode. + +MacOS +~~~~~ MacOS comes pre-installed with ``Apple Clang`` as the standard toolchain. This should be sufficient to build Sming in Host mode. +Note that MacOS does not support 32-bit applications so the emulator will build in 64-bit mode. + +Windows +~~~~~~~ For Windows, make sure your ``MinGW`` distro is up to date. See :doc:`/getting-started/windows/index` for further details. + Building -------- -Build the framework and application as usual, specifying :envvar:`SMING_ARCH` =Host. For example:: +Environment variables +~~~~~~~~~~~~~~~~~~~~~ + +:envvar:`SMING_ARCH` must be set to use ``Host`` as the desired architecture:: + + export SMING_ARCH=Host + +Debug Build +~~~~~~~~~~~ + +If you plan to use a debugger make sure to set :envvar:`ENABLE_GDB` and (optionally) +:envvar:`ENABLE_LWIPDEBUG` before compiling the code:: + + export ENABLE_GDB=1 + export ENABLE_LWIPDEBUG=1 #