-
Notifications
You must be signed in to change notification settings - Fork 1.5k
boards/qemu-armv8a: Add xedge
example program and documentation
#16665
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
The approval of this PR depends on apache/nuttx-apps#3120 |
please create a config on qemu, sim or real device to enable xedge. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this related to PR-16352? #16352
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The text LGTM. As others have said, this PR depends on PR in nuttx-apps, so let's wait until that is merged.
1890223
I add a example for xedge with qemu-armv8a board The download and build rules for the xedge library depend on apache/nuttx-apps#3120 |
@JorgeGzm please split this commit in documentation: and boards/qemu: commits to make it easy to be tracked in the Release Notes during the Release phase |
@JorgeGzm please also include this printscreen in the Documentation, this way user will see what to expect from this example |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @JorgeGzm :-)
xedge
example program.xedge
example program and documentation
973ffa2
to
8b35fc1
Compare
@JorgeGzm it is failing:
Please run "make html" locally to catch any issues with Documentation |
c8a8bc7
to
4c27bcd
Compare
@JorgeGzm nxstyle modification needs to be in a separated commit to easy tracking in the Release Notes |
- Add documentation for xedge example program - Add defconfig to run xedge with qemu-armv8a board Signed-off-by: Jorge Guzman <jorge.gzm@gmail.com>
@JorgeGzm please fix the build error(https://github.com/apache/nuttx/actions/runs/16522725505/job/46728268075?pr=16665):
|
I don't know exactly what is happening. When I test the "make xedge-deps" command directly on my machine, I need to comment out the routines in apps/netutils/xedge/makefile:
I compiled the routine that the CI is failing on, and on my local PC the download routine does not fail. user:~/nuttxspace/apps/netutils/xedge$ make xedge-deps
# ############################################################################
# Config and Fetch xedge
# ############################################################################
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 3999k 0 --:--:-- --:--:-- --:--:-- 16.8M
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 951k 0 --:--:-- --:--:-- --:--:-- 24.4M
# ############################################################################
# Library Configuration
# ############################################################################
Creating XedgeZip.c When I list the local folder, I can see that the files were actually downloaded: user:~/nuttxspace/apps/netutils/xedge$ ls
BAS BAS-Resources Kconfig Make.defs Makefile During the build process, I don't encounter any failures either: nuttx$ export PATH=$PATH:/home/user/Downloads/gcc-arm-11.2-2022.02-x86_64-aarch64-none-elf/bin
user:~/nuttxspace/nuttx$ make distclean -j
user:~/nuttxspace/nuttx$ ./tools/configure.sh qemu-armv8a:xedge_demo
user:~/nuttxspace/nuttx$ make -j
...
LD: nuttx
CP: nuttx.hex
CP: nuttx.bin Based on the failure logs, the errors seem to be occurring in the file: apps/netutils/xedge/makefile
56 if [ ! -d $(BAS_UNPACKNAME) ]; then \
57 echo "Downloading BAS from hash $(BAS_HASH)..."; \
58 curl -f -L $(BAS_ZIP_URL) -o bas-temp.zip || \
59 (echo "Error downloading BAS"; exit 1); \
60 unzip -q bas-temp.zip; \
61 mv BAS-$(BAS_HASH) $(BAS_UNPACKNAME); \
62 rm -f bas-temp.zip; \
63 fi Since the same makefile works locally but fails in CI, I suspect there may be some environment differences I'm not accounting for. What would you recommend I investigate to identify and resolve this issue? |
@JorgeGzm you may use https://github.com/apache/nuttx/blob/master/tools/ci/docker/linux/Dockerfile to reproduce. |
Summary
Add documentation and xedge exemple program using qemu-armv8a board.
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
Depends on: apache/nuttx-apps#3120 and #16759
Impact
Users can use Edge to develop their IoT applications.
Testing
Run xedge example with qemu-armv8a board
Running with QEMU:
note: Replace /mnt/xxx with your actual host directory path. This directory will be shared between your host system and the NuttX environment.
Before running Xedge, you need to create and mount a filesystem that Xedge will use for storing configuration files and web content
Running Xedge in NuttX terminal
Launch your web browser and access 127.0.0.1:8080