Hello friends from FreeRTOS,
My team is trying to implement coreHTTP on top of Plus TCP, and we have also implemented MBEDTLS(just build). We have followed the documentation at all times.
We are developing it on an stm32h735 board, and we successfully built it.
To implement the TCP, we have relied on GitHub - tony-josi-aws/STM32_Nucleo_H723ZG_FreeRTOS_TCP from the great @tony-josi-aws.
The code runs for about 40 seconds, with ping and a blink task. However, when the plaintext DEMO TASK starts, it throws the following error:
Any help is welcome; we need to accelerate our project. If someone with experience wants to assist us, that would be fantastic. Is there any repository with a coreHTTP implementation that can guide us?
many many thanks!
RA: failed, using default parameters and IP address
You are getting this message because one of your IPv6 endpoint is trying to get its IPv6 address allotted via RA (Router Advertisements) and it has failed after attempting multiple times.
This can be because the network you are using might not be supporting IPv6/RA, and hence is not getting replies to the Neighbour Solicitation messages sent by the DUT and hence defaulting to static IP address.
If that is the case, you can disable IPv6 endpoints in the demo by disabling
USE_IPv6_END_POINTS or disable RA and rely on static IP address.
Thank you very much! @tony-josi-aws
The application no longer crashes at that point.
I have also changed the net mask and the gateway to my values.
I think we are very close to achieving it.
I have 2 problems:
1- xHTTPStatus is not HTTPSuccess
2- Why does the program die when connection attempts end, losing the ping and the blink task?
Hope you can help.
The error seems to indicate there is some network error. Is it possible that the underlying TCP connection dies for some reason? Can you check your implementation of transport send function and see why is it returning error?
Can you check if you have
ipconfigHAS_DEBUG_PRINTF enabled in you copy of FreeRTOSIPConfig.h?
You can enabled logging as follows:
/* UDP logging or any other function that sends a text */
void lUDPLoggingPrintf( const char * pcFormat, ... );
#define ipconfigHAS_PRINTF 1 /* For important logging. */
#define ipconfigHAS_DEBUG_PRINTF 1 /* For less urgent logging. */
#if( ipconfigHAS_PRINTF != 0 )
#define FreeRTOS_printf( MSG ) lUDPLoggingPrintf MSG
#if( ipconfigHAS_DEBUG_PRINTF != 0 )
#define FreeRTOS_debug_printf( MSG ) lUDPLoggingPrintf MSG
Also, it could be helpful to create a PCAP file, although that will not be easy, because the communication takes place between the DUT and the Internet.
PS. when you show logging, it is easier to share it as an ASCII text in stead of a screen shot.
If you want can you share your project and I will look at it on my STM32Hx.
Hello @tony-josi-aws @htibosch and @aggarg
We have successfully made the http request.
I’m sharing the changes we made in case they can help someone facing a similar issue.
1- The plaintext example does not have TLS; we built a local server to make that request correctly. It worked.
2- Memory allocation: The application was crashing, in HardFault, with changes in the size
#define configMINIMAL_STACK_SIZE ( ( uint16_t )512 )
#define configTOTAL_HEAP_SIZE ( ( size_t )( 100 * 1024 ) )
We managed to make the plaintext demo work, and after it finishes, it continues to perform a blink task.
Thank you very much for your advice; it’s been very helpful.
Now the next step is to make a request to any website. The demos provided on the website are associated with AWS credentials. Is it possible to make such a request without these credentials on any website?
Yes, you can connect to any website using coreHTTP.