Download Barracuda App Server for VxWorks

Barracuda App Server for VxWorks

Download the Barracuda App Server for VxWorks and start developing IoT and web applications on VxWorks in no time. This delivery includes a ready to run binary for QEMU and everything you need, including the VxWorks kernel.

Learn more about Wind River VxWorks > Contact Wind River at salesinquiry@windriver.com. Real Time Logic is a Wind River partner.

Ready to run demo and source code

The VxWorks demo includes the VxWorks kernel, a pre-compiled Barracuda App Server, and ready to run tutorials. You can also download and cross compile the source code for your target environment.

Follow these simple steps to run the Barracuda App Server on VxWorks:

  1. Download and install QEMU
  2. Download the Barracuda App Server for VxWorks (one of the two following download options):
  3. Run the self extracting ZIP file and unzip in any directory
  4. Start the included StartVxWorks.cmd DOS batch file if not started automatically

(*) Use the second download option above if your antivirus program creates a problem.

The batch file StartVxWorks.cmd starts QEMU, an FTP Server, and an HTTP File Server. The following diagram shows the three command windows running and a browser connected to the Barracuda App Server running on VxWorks.

Barracuda App Server for VxWorks Screenshot

The VxWorks + Barracuda App Server Benefits

VxWorks has been the industry-leading real-time operating systems (RTOS) for building embedded devices and systems for more than 30 years. The Barracuda App Server adds a range of benefits to the VxWorks kernel, such as a complete high level cloud/IoT/edge development environment. The IoT, cloud, and web features enable easy, secure, and fast development of embedded software using Lua/C/C++ as well as providing a rich API for designing modern human machine interfaces. The Barracuda Application Server is optimized for embedded use, delivering high performance in a small footprint. The Barracuda Application Server is the ideal tool for your edge computing project as it lets developers easily design edge related tasks in Lua and easy bridging of cloud/IIoT and edge with its portfolio of IoT and industrial protocols.

Why Lua and not Python?

Python may be the king of the desktop, but Lua rocks in embedded systems. Python's main focus is to be a generic and easy to use command line scripting language, while Lua is designed to be a C Library with its main focus on being easy to integrate into a larger program. Lua is found in many games such as World of Warcraft. Lua has traditionally been selected when speed and size matters. Developers generally find Lua to be much faster and less resource hungry than Python. A developer that knows Python will find it easy to learn Lua since both languages are similar.

Why Use Lua in Embedded Systems?

The C/C++ programming languages dominate embedded systems programming, but developers often run into issues such as buffer overflows, memory leaks, and other memory corruption errors. With Lua you avoid these problems, particularly in larger projects where many computer programmers with varying skills are involved.

Lua abstracts out the details for the underlying microcontroller hardware. Instead of worrying about the bits and the bytes, a developer simply accesses methods of a peripheral object to control the hardware. Hardware control is done via a so called Lua binding. The abstraction of the hardware layer allows developers to focus on the application specifics rather than on the workings of the low-lying hardware.

Source Code

The Barracuda App Server Source Code Library is on GitHub. The GitHub repository includes two examples, the Mako Server and the LSP Application Manager. The Mako Server can be built for VxWorks 7 and up and the LSP Application Manager can be built for VxWorks 5.5 and up.

The following example shows how to compile the Mako Server for VxWorks 7:

wr-cc -o examples/MakoServer/mako -static -fmerge-all-constants -O3 -Os\
    -DUSE_EMBEDDED_ZIP=0 -DBA_FILESIZE64 -DBA_HAS_ANSI_IO -DMAKO -DUSE_SQL=0\
    -DLUA_NUMBER_INTEGER=0\
    -Iinc -Iinc/arch/VxWorks -Iinc/arch/NET/Posix\
    src/BAS.c\
    src/arch/VxWorks/ThreadLib.c src/arch/NET/generic/SoDisp.c src/DiskIo/posix/BaFile.c\
    examples/MakoServer/src/MakoMain.c\
    -lnet

Firewall and/or Virus Warnings

The binary download includes two trusted executables (indiftpd.exe and mako.exe), and you can safely accept them should your anti virus show a false positive. The programs also require opening a number of server ports and you must accept all ports via your firewall, if requested.