This examples implements an FTP server on a device that allows you to manage files from a computer connected to the same network.
The following picture shows an exemplary connection of the development board and a Computer.
The FTP Server project is available as part of the Network Reference examples.
Following files implement application-specific logic in the example:
FTP_Server.c
contains the application main thread which initializes the Network Component.You can add the following optional files, which are not included in the project by default:
FTP_Server_Multiuser.c
is used for specifying multiple users and access rights for these users.FTP_Server_Access.c
enables the server to accept or block connection requests from certain remote clients.FTP_Server_Event.c
contains a routine that notifies the user application about certain events happening on the FTP server (such as file/directory manipulation events).Configuration files for the software components used in the project are available in the ./RTE/
directory and can be modified by users to adjust the operation of related components.
Following configuration files are provided with this example:
./RTE/Network/
folder:Net_Config_FTP_Server.h
: FTP Server configurationNet_Config_TCP.h
: TCP Socket configurationNet_Config_UDP.h
: UDP Socket configurationNet_Config_ETH_0.h
: Ethernet Interface configurationNet_Config.h
: Network Core configurationNet_Debug.h
: Network Debug configuration./RTE/File_System/
folder:FS_Config.h
, FS_Config_MC_0.h
, FS_Debug.h
: File System configuration files./RTE/CMSIS/
folder:RTX_Config.h
and RTX_Config.c
: CMSIS-RTX Configuration files for the RTOS Kernel.When a board layer is added to the project, corresponding configuration files for the board and device components will become available in the local ./Board/
directory.
In order to build the project it shall be extended with a compatible board layer that provides following CMSIS-Driver interfaces as connections:
CMSIS_ETH
: CMSIS-Driver for Ethernet interfaceCMSIS_MCI
: CMSIS-Driver for Memory Card InterfaceCMSIS_VIO
: CMSIS-Driver for Virtual I/O interfaceSTDOUT
: Standard Output redirectionWorking with MDK-Middleware Examples explains the workflow for accessing, configuring and building an MDK-Middleware example project for your target hardware.
Setup
Board-specific hardware setup such as jumpers, Ethernet ports, power supply, etc. is documented in the board layer description (README.md
) of your selected target.
Example execution
You can use either a Command Line utility or a GUI FTP client program to connect to the FTP server from your host PC.
In the Command console of your PC type ftp my_host
(or the respective hostname specified in the Net_Config.h
file). If you have a DCHP server in your network, it will automatically connect to the FTP server.
You will be asked for a username and password combination. Use admin for the user name and no password (you can change the defaults in the Net_Config_FTP_Server.h
file). After a successful log in, you should see something like this: