TinyCTS/AL and lwIP
Introduction
Hardware
Software
MicroHTTP Library
Primary ROM file system
Secondary ROM file system
mDNS / LLMNR
Universal Plug and Play (UPnP)
Download
 

Introduction

Compared to my examples in the past

I use TinyCTS/AL with lwIP, MicroHTTP and my own ROM files system here.

The ROM file system is used for the primary web file system. As an alternative the plain SD card or xfile can be used too. Further extensions will be added over time.

Hardware

For this example the following boards was used:

Software

The software use the following key components:

For the compiler Embedded Studio v4.12 and CrossWorks for ARM v4.3.2 was used.

MicroHTTP Library

In the moment there exist no separate packages. The MicroHTTP software is an extract from the Ethernut project. More information about MicroHTTP can be find here. The features from MicroHTTP looks very promising.

Primary ROM file system

The ROM file system (romfs) is a read-only file system where the data is placed in the program memory of the CPU. To use the ROM file system as the primary web file system, the file "useromfs.txt" must exist. If this special file does not exist, the SD card is used as the primary file system.

In the example here, the primary ROM file system content can be find in the "\webpage\romfs" folder. The content of the filesystem can be "converted" with the "\webpage\_make_romfs.bat" file. Only the output file of this process "romfs_data.c" must be added to the project too.

Secondary ROM file system

If the plain SD card or xfile should be used, romfs is the secondary file system. Here a default content for the secondary file system is used. This content can be find in the "\common\webpage\romfs" folder. The content of the filesystem can be "converted" with the "\common\webpage\_make_romfs.bat" file. Only the output file of this process "romfs_data.c" must be added to the project too.

Note: The content of the primary file system "\webpage\romfs" must not be used.

Now the content of the primary web file system must be available on the SD card. Therefore the folder "htdocs" on the SD card is used. This folder must contain all the plain files of the web project, or only one "xfile.bin" file. In case of only the "xfile.bin", the xfile file system is used.

If the "xfile.bin" file is used, the file is copied into the RAM and used by the xfile file system.

mDNS / LLMNR

Multicast DNS (mDNS) provides the ability to perform DNS-like operations on the local link in the absence of any conventional Unicast DNS server (Source: RFC6762).

The goal of Link-Local Multicast Name Resolution (LLMNR) is to enable name resolution in scenarios in which conventional DNS name resolution is not possible (Source: RFC4795).

With the mDNS / LLMNR service it allows hosts to perform name resolution for hosts on the same local link. It is possible to address the host with e.g. "bf4088.local" or "b3.local".

Universal Plug and Play (UPnP)

Universal Plug and Play (UPnP) is a set of networking protocols that permits networked devices, such as personal computers, printers, Internet gateways, Wi-Fi access points and mobile devices to seamlessly discover each other's presence on the network and establish functional network services for data sharing, communications, and entertainment. UPnP is intended primarily for residential networks without enterprise-class devices (Source: Wikipedia).

Here UPnP serves as an additional possibility to establish a connection to a device without knowing the IP address or the name.

Download

SD Card (plain) content (3 KB)

SD Card (xfile) content (3 KB)

stm32769i-lwip_20190505 (5.67 MB)

stm32746g-lwip_20190505 (5.47 MB)

bf4088-lwip_20190209 (4.69 MB)

b3-lwip_20190127 (4.39 MB)