surfskidude opened a new pull request, #3071: URL: https://github.com/apache/nuttx-apps/pull/3071
Draft build instructions: Xedge on NuttX ============== Xedge is a robust IoT and web framework that is designed for microcontrollers. It is based on the industrial-grade Barracuda Application Server, designed for seamless OEM integration. Xedge accelerates embedded firmware development by providing a flexible, Lua-based environment and a full stack of industrial-strength protocols, including: - OPC UA - Modbus - MQTT - SMQ - WebSockets - HTTP/HTTPS This Xedge port for NuttX comes pre-configured and requires: - TCP/IP v4 and v6 support - File System support - 2 MB RAM allocated statically in ``xedge/xedge_main.c`` .. note:: These instructions set up Xedge in **development mode**. Xedge supports many configuration options that differ between development and production builds. For production settings and optimization, refer to the general Xedge build instructions (details below). Getting Started --------------- To compile Xedge for NuttX, follow these steps: 1. **Prepare the Xedge apps directory.** Navigate to the Xedge application folder: .. code-block:: bash cd nuttxspace/apps/examples/xedge 2. **Clone the required dependencies.** .. code-block:: bash git clone https://github.com/RealTimeLogic/BAS.git git clone https://github.com/RealTimeLogic/BAS-Resources.git 3. **Build the Xedge resources.** Move into the build directory: .. code-block:: bash cd BAS-Resources/build/ Run the Xedge resource build script. The following command answers the script prompts automatically: .. code-block:: bash printf "n\nl\nn\n" | bash Xedge.sh 4. **Copy the generated file.** Copy ``XedgeZip.c`` to the Xedge example directory: .. code-block:: bash cp XedgeZip.c ../../BAS/examples/xedge/ 5. **Configure NuttX for Xedge.** Return to the NuttX top-level directory and start the configuration tool: .. code-block:: bash make menuconfig In the configuration menu: - Enable the Xedge application: ``Application Configuration -> Examples -> Xedge`` - Enable dynamic socket callback allocation: ``Networking Support -> Socket Support -> Enable dynamic socket callback allocation`` (set value to **1**) - Increase the number of dynamic TCP connections: ``Networking Support -> TCP/IP Networking -> Dynamic TCP/IP connections allocation`` (set value to **at least 20**) - Enable automatic time synchronization via SNTP: ``Application Configuration -> Network Utilities -> NTP Client`` - Make sure syslog is enabled: ``Device Drivers -> System Logging -> Enable system logging`` ``Device Drivers -> System Logging -> Log to /dev/console `` 6. **Build NuttX.** Save your changes, exit ``menuconfig``, and build: .. code-block:: bash make Running Xedge ------------- Once NuttX is flashed and running, bring up the network interface and start time synchronization: .. code-block:: bash ifup eth0 xedge Further Reading =============== To learn more about Xedge and how to work with it effectively, see the following resources: - **Using Xedge in Developer Mode:** Learn how to configure and work with Xedge during development, including dynamic Lua scripting, file system layout, and runtime behavior. `How to use Xedge when in developer mode <https://realtimelogic.com/ba/doc/en/Xedge.html>`_ - **Building Xedge for Developer or Production Mode:** Understand the differences between development and production builds, and follow detailed instructions for compiling Xedge appropriately for your target environment. `How to compile Xedge for developer or production mode <https://realtimelogic.com/ba/examples/xedge/readme.html>`_ ## Summary ## Impact ## Testing -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org