@ashvajit wrote:
Also , looking at this repo, is it really important to include all of the files ?
FreeRTOS+TCP has 42 basic files, plus a few extra from source/portable
.
I normally do not make a selection but add a use a wildcard in a makefile:
# add all library files
C_SRCS += /
$(wildcard $(PLUS_TCP_PATH)/source/*.c)
# add files from portable
C_SRCS += /
$(PLUS_TCP_PATH)/source/portable/BufferManagement/BufferAllocation_1.c \
$(PLUS_TCP_PATH)/source/portable/NetworkInterface/STM32Fxx/NetworkInterface.c \
$(PLUS_TCP_PATH)/source/portable/NetworkInterface/STM32Fxx/stm32fxx_hal_eth.c
Library files that are not needed will not be compiled, depending on macros like ipconfigUSE_IPv6
and ipconfigUSE_DNS
.
I wrote earlier:
Please check the documentation on each of the missing application hooks.
An easy way to find the proper documentation is to open a search machine and look for “FreeRTOS xApplicationDNSQueryHook”.
This is how I just found the following pages:
vApplicationIPNetworkEventHook_Multi
vApplicationIPNetworkEventHook
xApplicationDNSQueryHook_Multi
xApplicationDNSQueryHook
xApplicationGetRandomNumber
ulApplicationGetNextSequenceNumber
The functions ending with _Multi
are used when you use multiple endpoints, that is when ipconfigIPv4_BACKWARD_COMPATIBLE
is not defined.
Indeed these functions are “application hooks”, also called “callbacks”. Take care when using them because the hook is called from the IP-task. It may have a higher task priority, and it may have less stack space. Also it is not allowed to call the +TCP API’s, because the code is running in the IP-task.
But in which file do I need to provide these definitions and where the prototypes should be placed?
I normally put them in a module where it is used. Your are free to choose.
Are there any sample for stm32 that’s what I am looking for…
I made a few Makefile projects to test the IP-stack and other software. You can find it here on github here.
Today I upgraded the stm32F40 project. I will also upgrade the stm32F7 project. I will report here when it is ready.