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.
For this example the following boards was used:
The software use the following key components:
For the compiler Embedded Studio
v4.12 and CrossWorks for ARM v4.3.2 was used.
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
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.
SD Card (plain) content (3 KB)
SD Card (xfile) content (3 KB)
bf4088-lwip_20190209 (4.69 MB)
stm32746g-lwip_20190209 (5.61 MB)
b3-lwip_20190127 (4.39 MB)