Skip to content

Commit

Permalink
Update FreeRTOS+TCP to latest version V4.3.1 (#1305)
Browse files Browse the repository at this point in the history
Update FreeRTOS+TCP to latest version V4.3.1
  • Loading branch information
tony-josi-aws authored Dec 23, 2024
1 parent 93ba585 commit a3c047d
Show file tree
Hide file tree
Showing 8 changed files with 61 additions and 31 deletions.
45 changes: 38 additions & 7 deletions .github/workflows/freertos_plus_demos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -446,10 +446,20 @@ jobs:
id: generate-credentials
uses: FreeRTOS/CI-CD-GitHub-Actions/ssl-credential-creator@main

- name: Query CI host IP address
id: get-ip
run: |
# Query the device's IP address
$SERVER_IP = (Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.IPAddress -notmatch '127.0.0.1' } | Select-Object -First 1 -ExpandProperty IPAddress)
Write-Host "Device IP address: $SERVER_IP"
echo "server_ip=$SERVER_IP" >> $env:GITHUB_ENV
shell: pwsh

- name: Start localhost MQTT broker
id: mqtt-broker
uses: FreeRTOS/CI-CD-GitHub-Actions/localhost-mqtt-broker@main
with:
host_address: ${{ env.server_ip }}
root-ca-cert-path:
${{ steps.generate-credentials.outputs.root-ca-cert-path }}
server-priv-key-path:
Expand All @@ -475,7 +485,7 @@ jobs:
# ${{ env.stepName }}
echo -e "::group::${{ env.stepName }}"
echo '#define democonfigCLIENT_IDENTIFIER "mqtt_demo_test"' >> demo_config.h
echo '#define democonfigMQTT_BROKER_ENDPOINT "127.0.0.1"' >> demo_config.h
echo '#define democonfigMQTT_BROKER_ENDPOINT "${{ env.server_ip }}"' >> demo_config.h
echo '#define democonfigMQTT_BROKER_PORT ( 1883 )' >> demo_config.h
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} "
Expand Down Expand Up @@ -521,7 +531,7 @@ jobs:
sed 's/.*/"&\\n"\\/' ${{ steps.generate-credentials.outputs.root-ca-cert-path }} >> root_ca_cert.txt
sed '$ s/.$//' root_ca_cert.txt >> demo_config.h
echo '#define democonfigCLIENT_IDENTIFIER "mqtt_demo_test"' >> demo_config.h
echo '#define democonfigMQTT_BROKER_ENDPOINT "127.0.0.1"' >> demo_config.h
echo '#define democonfigMQTT_BROKER_ENDPOINT "${{ env.server_ip }}"' >> demo_config.h
echo '#define democonfigMQTT_BROKER_PORT ( 8883 )' >> demo_config.h
sed -i -z "s/define[[:space:]]*democonfigDISABLE_SNI[[:space:]]*([[:space:]]*[a-zA-Z0-9]\+[[:space:]]*)/define democonfigDISABLE_SNI ( pdTRUE )/g" demo_config.h
exitStatus=$?
Expand Down Expand Up @@ -575,7 +585,7 @@ jobs:
sed 's/.*/"&\\n"\\/' ${{ steps.generate-credentials.outputs.device-priv-key-path }} >> device_priv_key.txt
sed '$ s/.$//' device_priv_key.txt >> demo_config.h
echo '#define democonfigCLIENT_IDENTIFIER "mqtt_demo_test"' >> demo_config.h
echo '#define democonfigMQTT_BROKER_ENDPOINT "127.0.0.1"' >> demo_config.h
echo '#define democonfigMQTT_BROKER_ENDPOINT "${{ env.server_ip }}"' >> demo_config.h
echo '#define democonfigMQTT_BROKER_PORT ( 8883 )' >> demo_config.h
sed -i -z "s/define[[:space:]]*democonfigDISABLE_SNI[[:space:]]*([[:space:]]*[a-zA-Z0-9]\+[[:space:]]*)/define democonfigDISABLE_SNI ( pdTRUE )/g" demo_config.h
echo "::endgroup::"
Expand Down Expand Up @@ -621,7 +631,7 @@ jobs:
echo '#ifndef DEMO_CONFIG_H_TEST_BUILD' >> demo_config.h
echo ' #define DEMO_CONFIG_H_TEST_BUILD' >> demo_config.h
echo ' #define democonfigCLIENT_IDENTIFIER "mqtt_demo_test"' >> demo_config.h
echo ' #define democonfigMQTT_BROKER_ENDPOINT "127.0.0.1"' >> demo_config.h
echo ' #define democonfigMQTT_BROKER_ENDPOINT "${{ env.server_ip }}"' >> demo_config.h
echo ' #define democonfigMQTT_BROKER_PORT ( 1883 )' >> demo_config.h
echo '#endif /* DEMO_CONFIG_H_TEST_BUILD */' >> demo_config.h
echo "::endgroup::"
Expand Down Expand Up @@ -665,7 +675,7 @@ jobs:
# ${{ env.stepName }}
echo -e "::group::${{ env.stepName }}"
echo '#define democonfigCLIENT_IDENTIFIER "mqtt_demo_test"' >> demo_config.h
echo '#define democonfigMQTT_BROKER_ENDPOINT "127.0.0.1"' >> demo_config.h
echo '#define democonfigMQTT_BROKER_ENDPOINT "${{ env.server_ip }}"' >> demo_config.h
echo '#define democonfigMQTT_BROKER_PORT ( 1883 )' >> demo_config.h
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} "
Expand Down Expand Up @@ -710,7 +720,7 @@ jobs:
sed 's/.*/"&\\n"\\/' ${{ steps.generate-credentials.outputs.device-priv-key-path }} >> device_priv_key.txt
sed '$ s/.$//' device_priv_key.txt >> demo_config.h
echo '#define democonfigCLIENT_IDENTIFIER "mqtt_demo_test"' >> demo_config.h
echo '#define democonfigMQTT_BROKER_ENDPOINT "127.0.0.1"' >> demo_config.h
echo '#define democonfigMQTT_BROKER_ENDPOINT "${{ env.server_ip }}"' >> demo_config.h
echo '#define democonfigMQTT_BROKER_PORT ( 8883 )' >> demo_config.h
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} "
Expand Down Expand Up @@ -1051,10 +1061,19 @@ jobs:
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} "
- name: Query CI host IP address
id: get-ip
run: |
# Query the device's IP address
SERVER_IP="$(ip addr show | grep "inet " | grep -v "127.0.0.1" | awk '{print $2}' | cut -d/ -f1 | head -n 1)"
echo "Device IP address: $SERVER_IP"
echo "server_ip=\"$SERVER_IP\"" >> $GITHUB_ENV
- name: Start localhost Echo server
id: echo-server
uses: FreeRTOS/CI-CD-GitHub-Actions/localhost-echo-server@main
with:
host_address: ${{ env.server_ip }}
port_number: 5000

- env:
Expand All @@ -1067,6 +1086,8 @@ jobs:
echo -e "::group::${{ env.stepName }}"
sed -i -z "s/define[[:space:]]*echoECHO_PORT[[:space:]]*([[:space:]]*[0-9]\+[[:space:]]*)/define echoECHO_PORT ( 5000 )/g" TCPEchoClient_SingleTasks.c
sed -i -z "s/int[[:space:]]*main[[:space:]]*([[:space:]]*void[[:space:]]*)\n{/int main( void ){setvbuf( stdout, NULL, _IONBF, 0 );/g" main.c
sed -i "s/^#define configECHO_SERVER_ADDR .*/#define configECHO_SERVER_ADDR \"${{ env.server_ip }}\"/" FreeRTOSConfig.h
git diff
make -j TRACE_ON_ENTER=0
echo "::endgroup::"
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} "
Expand Down Expand Up @@ -1177,10 +1198,20 @@ jobs:
exit 1
}
- name: Query CI host IP address
id: get-ip
run: |
# Query the device's IP address
$SERVER_IP = (Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.IPAddress -notmatch '127.0.0.1' } | Select-Object -First 1 -ExpandProperty IPAddress)
Write-Host "Device IP address: $SERVER_IP"
echo "server_ip=$SERVER_IP" >> $env:GITHUB_ENV
shell: pwsh

- name: Start localhost Echo server
id: echo-server
uses: FreeRTOS/CI-CD-GitHub-Actions/localhost-echo-server@main
with:
host_address: ${{ env.server_ip }}
port_number: 5000

- env:
Expand All @@ -1195,7 +1226,7 @@ jobs:
$newContent = $content -replace '#define\s+echoECHO_PORT.*', '#define echoECHO_PORT ( 5000 )'
$newContent | Set-Content -Path 'DemoTasks\TCPEchoClient_SingleTasks.c'
$content = Get-Content -Path 'tcp_echo_config.h' -Raw
$newContent = $content -replace '#define\s+configECHO_SERVER_ADDR.*', '#define configECHO_SERVER_ADDR "127.0.0.1"'
$newContent = $content -replace '#define\s+configECHO_SERVER_ADDR.*', '#define configECHO_SERVER_ADDR "${{ env.server_ip }}"'
$newContent | Set-Content -Path 'tcp_echo_config.h'
$content = Get-Content -Path 'main.c' -Raw
$newContent = $content -replace 'int\s+main(.*?)void(.*?)\r?\n\s*{', 'int main( void ){setvbuf( stdout, NULL, _IONBF, 0 );'
Expand Down
17 changes: 7 additions & 10 deletions FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/FreeRTOSConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -168,22 +168,19 @@ extern void vAssertCalled( const char * const pcFileName,
* http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_Echo_Clients.html
* http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/UDP_Echo_Clients.html */

#define configECHO_SERVER_ADDR0 127
#define configECHO_SERVER_ADDR1 0
#define configECHO_SERVER_ADDR2 0
#define configECHO_SERVER_ADDR3 1
#define configECHO_SERVER_ADDR "172.31.69.236"

/* Default MAC address configuration. The demo creates a virtual network
* connection that uses this MAC address by accessing the raw Ethernet/WiFi data
* to and from a real network connection on the host PC. See the
* configNETWORK_INTERFACE_TO_USE definition above for information on how to
* configure the real network connection to use. */
#define configMAC_ADDR0 0x00
#define configMAC_ADDR1 0x11
#define configMAC_ADDR2 0x22
#define configMAC_ADDR3 0x33
#define configMAC_ADDR4 0x44
#define configMAC_ADDR5 0x41
#define configMAC_ADDR0 0x00
#define configMAC_ADDR1 0x11
#define configMAC_ADDR2 0x22
#define configMAC_ADDR3 0x33
#define configMAC_ADDR4 0x44
#define configMAC_ADDR5 0x41

/* Default IP address configuration. Used in ipconfigUSE_DNS is set to 0, or
* ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@
#ifndef FREERTOS_IP_CONFIG_H
#define FREERTOS_IP_CONFIG_H

#ifdef HEAP3
#define xPortGetMinimumEverFreeHeapSize( x ) 0
#define xPortGetFreeHeapSize() 0
#endif

/* Prototype for the function used to print out. In this case it prints to the
* console before the network is connected then a UDP port after the network has
* connected. */
Expand Down Expand Up @@ -67,7 +72,7 @@ extern void vLoggingPrintf( const char * pcFormatString,
* FreeRTOS_netstat() command, and ping replies. If ipconfigHAS_PRINTF is set to 1
* then FreeRTOS_printf should be set to the function used to print out the
* messages. */
#define ipconfigHAS_PRINTF 0
#define ipconfigHAS_PRINTF 1
#if ( ipconfigHAS_PRINTF == 1 )
#define FreeRTOS_printf( X ) vLoggingPrintf X
#endif
Expand Down
3 changes: 3 additions & 0 deletions FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ LDFLAGS += $(shell pkg-config --libs slirp)

CPPFLAGS = $(INCLUDE_DIRS) -DBUILD_DIR=\"$(BUILD_DIR_ABS)\"

DEFINES := -DHEAP3
CPPFLAGS += $(DEFINES)

ifndef TRACE_ON_ENTER
TRACE_ON_ENTER = 1
endif
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,17 +158,11 @@

#if defined( ipconfigIPv4_BACKWARD_COMPATIBLE ) && ( ipconfigIPv4_BACKWARD_COMPATIBLE == 0 )
{
xEchoServerAddress.sin_address.ulIP_IPv4 = FreeRTOS_inet_addr_quick( configECHO_SERVER_ADDR0,
configECHO_SERVER_ADDR1,
configECHO_SERVER_ADDR2,
configECHO_SERVER_ADDR3 );
xEchoServerAddress.sin_address.ulIP_IPv4 = FreeRTOS_inet_addr( configECHO_SERVER_ADDR );
}
#else
{
xEchoServerAddress.sin_addr = FreeRTOS_inet_addr_quick( configECHO_SERVER_ADDR0,
configECHO_SERVER_ADDR1,
configECHO_SERVER_ADDR2,
configECHO_SERVER_ADDR3 );
xEchoServerAddress.sin_addr = FreeRTOS_inet_addr( configECHO_SERVER_ADDR );
}
#endif /* defined( ipconfigIPv4_BACKWARD_COMPATIBLE ) && ( ipconfigIPv4_BACKWARD_COMPATIBLE == 0 ) */

Expand All @@ -189,8 +183,8 @@
FreeRTOS_setsockopt( xSocket, 0, FREERTOS_SO_WIN_PROPERTIES, ( void * ) &xWinProps, sizeof( xWinProps ) );

/* Connect to the echo server. */
printf( "\nConnecting to echo server %d.%d.%d.%d:%d....\n",
configECHO_SERVER_ADDR0, configECHO_SERVER_ADDR1, configECHO_SERVER_ADDR2, configECHO_SERVER_ADDR3, echoECHO_PORT );
printf( "\nConnecting to echo server %s:%d....\n",
configECHO_SERVER_ADDR, echoECHO_PORT );

ret = FreeRTOS_connect( xSocket, &xEchoServerAddress, sizeof( xEchoServerAddress ) );

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ void main_tcp_echo_client_tasks( void )
}
else
{
FreeRTOS_printf( "Application idle hook network down\n" );
FreeRTOS_printf( ( "Application idle hook network down\n" ) );
}
}
/*-----------------------------------------------------------*/
Expand Down
2 changes: 1 addition & 1 deletion FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP
Submodule FreeRTOS-Plus-TCP updated 562 files
2 changes: 1 addition & 1 deletion manifest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ dependencies:
path: "FreeRTOS/Source"

- name: "FreeRTOS-Plus-TCP"
version: "V4.1.0"
version: "V4.3.1"
repository:
type: "git"
url: "https://github.com/FreeRTOS/FreeRTOS-Plus-TCP.git"
Expand Down

0 comments on commit a3c047d

Please sign in to comment.