JorgeGzm opened a new pull request, #3120:
URL: https://github.com/apache/nuttx-apps/pull/3120

   Create new example application that:
   - Integrates BAS (Barracuda Application Server) library
   - Automatically downloads BAS and BAS-Resources repositories
   - Generates XedgeZip.c for embedded web resources
   - Provides complete build configuration for NuttX
   
   ## Summary
   
   I'm supporting @surfskidude to update xedge support with nuttx.
   
   This commit covers conversations: 
   https://github.com/apache/nuttx/pull/16352
   https://github.com/apache/nuttx-apps/pull/3071
   
   ## Impact
   
   ``Xedge`` a lightweight Lua-based web framework for building secure, 
real-time IoT applications
   =========================================================================
   
   `Xedge <https://realtimelogic.com/products/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).
   
   Why Use Lua and Xedge in Embedded Systems
   ------------------------------------------
   
   Great Lua developers don't treat it as a "better C"; they treat it as a 
complement. Lua is an extension language, which means it's designed to work 
alongside C, not replace it. Smart embedded programmers use C for 
performance-critical, low-level code and Lua for high-level business logic, 
such as processing sensor data and managing secure cloud connectivity.
   
   Writing embedded business logic purely in C often means hundreds of lines of 
boilerplate code to manage memory, handle complex APIs, and handle errors. Lua, 
especially when paired with a framework like Xedge, lifts that burden. It 
provides high-level libraries and modules out of the box for protocols, 
networking, file systems, and more.
   
   This shift doesn't just make development easier; it makes it faster. What 
used to take weeks in C can now be done in days. Lua's simplicity encourages 
rapid prototyping and quick iteration, which is essential in modern IoT and 
embedded development, where both time-to-market and security are critical. For 
a conceptual overview of why this hybrid development model is so powerful, 
check out the tutorial `Why Smart C Coders Love Lua.
   
   ## Testing
   
   This routine is incomplete and still needs to be fixed.
   
   ```bash
   ./tools/configure.sh linum-stm32h753bi:netnsh
   ```
   
   Open the menu config and enable the flags bellow:
   
   NETUTILS_NTPCLIENT=y
   ALLOW_GPL_COMPONENTS=y
   EXAMPLES_XEDGE=y
   
   ```bash
   $ make -j
   Create version.h
   LN: platform/board to /home/jaga/nuttxspace/apps/platform/dummy
   Downloading BAS from hash 9f74a2f778b002ad8441471b8a7a5b13172dbe76...
     % Total    % Received % Xferd  Average Speed   Time    Time     Time  
Current
                                    Dload  Upload   Total   Spent    Left  Speed
     0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
   100 3867k    0 3867k    0     0  4078k      0 --:--:-- --:--:-- --:--:-- 
4078k
   Downloading BAS-Resources from hash 
227a4b998300fa4cfde871dc7dac92c09e1636c2...
     % Total    % Received % Xferd  Average Speed   Time    Time     Time  
Current
                                    Dload  Upload   Total   Spent    Left  Speed
     0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
   100  813k    0  813k    0     0  1192k      0 --:--:-- --:--:-- --:--:-- 
1192k
   Creating XedgeZip.c
   Register: nsh
   Register: sh
   Register: ping
   Register: dd
   Register: telnetd
   Register: xedge
   Register: alarm
   CPP:  
/home/jaga/nuttxspace/nuttx/boards/arm/stm32h7/linum-stm32h753bi/scripts/flash.ld->
 /home/jaga/nuttxspace/nuttx/boards/arm/stm32h7LD: nuttx
   arm-none-eabi-ld: /home/jaga/nuttxspace/nuttx/nuttx section `.bss' will not 
fit in region `sram'
   arm-none-eabi-ld: region `sram' overflowed by 1621920 bytes
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `luaD_throw':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:11775: undefined 
reference to `longjmp'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `luaD_rawrunprotected':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:11801: undefined 
reference to `setjmp'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `lua_strx2number':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:16759: undefined 
reference to `localeconv'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `l_str2d':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:16857: undefined 
reference to `localeconv'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `tostringbuff':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:16956: undefined 
reference to `localeconv'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `num2straux':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:21029: undefined 
reference to `localeconv'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `quotefloat':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:21149: undefined 
reference to `localeconv'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `l_strcmp':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:23289: undefined 
reference to `strcoll'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `os_execute':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:25147: undefined 
reference to `system'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `os_setlocale':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:25423: undefined 
reference to `setlocale'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `read_number':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:26782: undefined 
reference to `localeconv'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `DeadProp_save':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:83645: undefined 
reference to `setjmp'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `LockNode_setOwner':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:85492: undefined 
reference to `setjmp'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `cachelevel':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:86369: undefined 
reference to `setjmp'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:86478: undefined 
reference to `setjmp'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `resetstate':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:86702: undefined 
reference to `setjmp'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):/home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:86798:
 more undefined references to `setjmp' follow
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `SlException_set':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:92496: undefined 
reference to `longjmp'
   arm-none-eabi-ld: 
/home/jaga/nuttxspace/nuttx/staging/libapps.a(BAS.c.home.jaga.nuttxspace.apps.examples.xedge_1.o):
 in function `SXmlRoot_parse':
   /home/jaga/nuttxspace/apps/examples/xedge/BAS/src/BAS.c:92507: undefined 
reference to `setjmp'
   make[1]: *** [Makefile:217: nuttx] Error 1
   make: *** [tools/Unix.mk:552: nuttx] Error 2
   ```
   


-- 
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

Reply via email to