Skip to content

Commit

Permalink
Merge branch 'main' into update_readme_tcp_qemu
Browse files Browse the repository at this point in the history
  • Loading branch information
kar-rahul-aws committed Jun 27, 2024
2 parents c81c185 + ba4f37f commit a3eb9b4
Show file tree
Hide file tree
Showing 19 changed files with 150 additions and 163 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,8 @@ extern void vAssertCalled( void );
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 0
#define configMAX_PRIORITIES ( 10 )
#define configTIMER_QUEUE_LENGTH 20
#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 3 )
#define configUSE_COUNTING_SEMAPHORES 1
#define configSUPPORT_DYNAMIC_ALLOCATION 1
#define configNUM_TX_DESCRIPTORS 15

/* Set the following definitions to 1 to include the API function, or zero
* to exclude the API function. */
Expand All @@ -74,7 +71,7 @@ extern void vAssertCalled( void );
#define INCLUDE_vTaskDelete 0
#define INCLUDE_vTaskCleanUpResources 0
#define INCLUDE_vTaskSuspend 0
#define INCLUDE_vTaskDelayUntil 1
#define INCLUDE_vTaskDelayUntil 0
#define INCLUDE_vTaskDelay 1


Expand All @@ -89,7 +86,6 @@ extern void vAssertCalled( void );
/* networking definitions */
#define configMAC_ISR_SIMULATOR_PRIORITY ( configMAX_PRIORITIES - 2 )
#define ipconfigUSE_NETWORK_EVENT_HOOK 1
/*#define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME pdMS_TO_TICKS(5000) */
#define configNETWORK_INTERFACE_TO_USE 1L

/* The address of an echo server that will be used by the two demo echo client
Expand All @@ -115,33 +111,33 @@ extern void vAssertCalled( void );
#define configMAC_ADDR4 0x34
#define configMAC_ADDR5 0xAD

/* 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. */
/* Default IP address configuration. Used if ipconfigUSE_DHCP is set to 0, or
* ipconfigUSE_DHCP is set to 1 but a DHCP server cannot be contacted. */

#define configIP_ADDR0 10
#define configIP_ADDR1 211
#define configIP_ADDR2 55
#define configIP_ADDR3 5

/* Default gateway 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. */
/* Default gateway IP address configuration. Used if ipconfigUSE_DHCP is set to
* 0, or ipconfigUSE_DHCP is set to 1 but a DHCP server cannot be contacted. */

#define configGATEWAY_ADDR0 10
#define configGATEWAY_ADDR1 211
#define configGATEWAY_ADDR2 55
#define configGATEWAY_ADDR3 1

/* Default DNS server configuration. OpenDNS addresses are 208.67.222.222 and
* 208.67.220.220. Used in ipconfigUSE_DNS is set to 0, or ipconfigUSE_DNS is set
* to 1 but a DNS server cannot be contacted.*/
* 208.67.220.220. Used if ipconfigUSE_DHCP is set to 0, or ipconfigUSE_DHCP is set
* to 1 but a DHCP server cannot be contacted.*/

#define configDNS_SERVER_ADDR0 127
#define configDNS_SERVER_ADDR1 0
#define configDNS_SERVER_ADDR2 0
#define configDNS_SERVER_ADDR3 53

/* Default netmask configuration. Used in ipconfigUSE_DNS is set to 0, or
* ipconfigUSE_DNS is set to 1 but a DNS server cannot be contacted. */
/* Default netmask configuration. Used if ipconfigUSE_DHCP is set to 0, or
* ipconfigUSE_DHCP is set to 1 but a DHCP server cannot be contacted. */
#define configNET_MASK0 255
#define configNET_MASK1 255
#define configNET_MASK2 255
Expand Down
35 changes: 19 additions & 16 deletions FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
CC = arm-none-eabi-gcc
SIZE = arm-none-eabi-size
BIN := freertos_tcp_mps2_demo.axf

BUILD_DIR := build
Expand Down Expand Up @@ -29,7 +30,6 @@ INCLUDE_DIRS += -I$(KERNEL_DIR)/include
SOURCE_FILES += $(KERNEL_DIR)/tasks.c
SOURCE_FILES += $(KERNEL_DIR)/list.c
SOURCE_FILES += $(KERNEL_DIR)/queue.c
SOURCE_FILES += $(KERNEL_DIR)/timers.c
SOURCE_FILES += $(KERNEL_DIR)/event_groups.c

# FreeRTOS Kernel ARM Cortex-M3 Port
Expand All @@ -51,30 +51,33 @@ SOURCE_FILES += ${FREERTOS_TCP}/source/portable/BufferManagement/BufferAllocatio
SOURCE_FILES += ${FREERTOS_TCP}/source/portable/NetworkInterface/MPS2_AN385/NetworkInterface.c
SOURCE_FILES += ${FREERTOS_TCP}/source/portable/NetworkInterface/MPS2_AN385/ether_lan9118/smsc9220_eth_drv.c

DEFINES := -DQEMU_SOC_MPS2 -DHEAP3

LDFLAGS = -T mps2_m3.ld -specs=nano.specs --specs=rdimon.specs -lc -lrdimon
LDFLAGS += -Xlinker -Map=${BUILD_DIR}/output.map

CFLAGS += -nostartfiles -mthumb -mcpu=cortex-m3 -Wno-error=implicit-function-declaration
CFLAGS += -Wno-builtin-declaration-mismatch -Werror
DEFINES := -DHEAP3
CPPFLAGS += $(DEFINES)

CFLAGS += -mthumb -mcpu=cortex-m3
ifeq ($(DEBUG), 1)
CFLAGS += -ggdb3 -Og
CFLAGS += -g3 -Og -ffunction-sections -fdata-sections
else
CFLAGS += -O3
CFLAGS += -Os -ffunction-sections -fdata-sections
endif
CFLAGS += -fstrict-aliasing -Wstrict-aliasing -Wno-error=address-of-packed-member
CFLAGS += -MMD
CFLAGS += -Wall -Wextra -Wshadow
#CFLAGS += -Wpedantic -fanalyzer
#CFLAGS += -flto
CFLAGS += $(INCLUDE_DIRS)

OBJ_FILES := $(SOURCE_FILES:%.c=$(BUILD_DIR)/%.o)
LDFLAGS = -T mps2_m3.ld
LDFLAGS += -Xlinker -Map=${BUILD_DIR}/output.map
LDFLAGS += -Xlinker --gc-sections
LDFLAGS += -nostartfiles -specs=nano.specs -specs=nosys.specs -specs=rdimon.specs

CPPFLAGS += $(DEFINES)
CFLAGS += $(INCLUDE_DIRS)
OBJ_FILES := $(SOURCE_FILES:%.c=$(BUILD_DIR)/%.o)

.PHONY: clean

$(BUILD_DIR)/$(BIN) : $(OBJ_FILES)
$(CC) -ffunction-sections -fdata-sections $(CFLAGS) $(LDFLAGS) $+ -o $(@)
$(CC) $(CFLAGS) $(LDFLAGS) $+ -o $(@)
$(SIZE) $(@)

%.d: %.c
@set -e; rm -f $@; \
Expand All @@ -87,7 +90,7 @@ INCLUDES := $(SOURCE_FILES:%.c=$(BUILD_DIR)/%.d)

${BUILD_DIR}/%.o : %.c Makefile
-mkdir -p $(@D)
$(CC) $(CPPFLAGS) $(CFLAGS) -MMD -c $< -o $@
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@

clean:
-rm -rf build
Original file line number Diff line number Diff line change
Expand Up @@ -206,18 +206,18 @@
lStringLength = prvCreateTxData( pcTransmittedString, echoBUFFER_SIZES );

/* Add in some unique text at the front of the string. */
sprintf( pcTransmittedString, "TxRx message number %u", ulTxCount );
sprintf( pcTransmittedString, "TxRx message number %lu", ulTxCount );
ulTxCount++;

printf( "sending data to the echo server size %d original %d\n",
printf( "sending data to the echo server size %ld original %d\n",
lStringLength,
echoBUFFER_SIZES );
/* Send the string to the socket. */
lTransmitted = FreeRTOS_send( xSocket, /* The socket being sent to. */
( void * ) pcTransmittedString, /* The data being sent. */
lStringLength, /* The length of the data being sent. */
0 ); /* No flags. */
printf( "FreeRTOS_send returned...transmitted %d\n",
printf( "FreeRTOS_send returned...transmitted %ld\n",
lTransmitted );

if( lTransmitted < 0 )
Expand Down Expand Up @@ -398,15 +398,24 @@
#if ( ipconfigIPv4_BACKWARD_COMPATIBLE == 1 )
eDHCPCallbackAnswer_t xApplicationDHCPHook( eDHCPCallbackPhase_t eDHCPPhase,
uint32_t ulIPAddress )
{
( void ) eDHCPPhase;
( void ) ulIPAddress;

return eDHCPContinue;
}
#else /* ( ipconfigIPv4_BACKWARD_COMPATIBLE == 1 ) */
eDHCPCallbackAnswer_t xApplicationDHCPHook_Multi( eDHCPCallbackPhase_t eDHCPPhase,
struct xNetworkEndPoint * pxEndPoint,
IP_Address_t * pxIPAddress )
{
( void ) eDHCPPhase;
( void ) pxEndPoint;
( void ) pxIPAddress;

return eDHCPContinue;
}
#endif /* ( ipconfigIPv4_BACKWARD_COMPATIBLE == 1 ) */
{
/* Provide a stub for this function. */
return eDHCPContinue;
}

#endif /* if ( ipconfigUSE_DHCP_HOOK != 0 )*/

Expand Down
6 changes: 1 addition & 5 deletions FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,7 @@ void main_tcp_echo_client_tasks( void );
void vApplicationIdleHook( void );
void vApplicationTickHook( void );

extern void initialise_monitor_handles( void );

int main()
int main( void )
{
main_tcp_echo_client_tasks();
return 0;
Expand Down Expand Up @@ -84,8 +82,6 @@ void vApplicationStackOverflowHook( TaskHandle_t pxTask,

void vApplicationIdleHook( void )
{
volatile size_t xFreeHeapSpace;

/* This is just a trivial example of an idle hook. It is called on each
* cycle of the idle task. It must *NOT* attempt to block. In this case the
* idle task just queries the amount of FreeRTOS heap that remains. See the
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,8 +180,6 @@ void main_tcp_echo_client_tasks( void )
}
#endif /* ( ipconfigUSE_DHCP != 0 ) */

memcpy( ipLOCAL_MAC_ADDRESS, ucMACAddress, sizeof( ucMACAddress ) );

FreeRTOS_IPInit_Multi();
#else /* if defined( ipconfigIPv4_BACKWARD_COMPATIBLE ) && ( ipconfigIPv4_BACKWARD_COMPATIBLE == 0 ) */
/* Using the old /single /IPv4 library, or using backward compatible mode of the new /multi library. */
Expand Down Expand Up @@ -224,6 +222,10 @@ BaseType_t xTasksAlreadyCreated = pdFALSE;
uint32_t ulDNSServerAddress;
char cBuffer[ 16 ];

#if defined( ipconfigIPv4_BACKWARD_COMPATIBLE ) && ( ipconfigIPv4_BACKWARD_COMPATIBLE == 0 )
( void ) pxEndPoint;
#endif /* defined( ipconfigIPv4_BACKWARD_COMPATIBLE ) && ( ipconfigIPv4_BACKWARD_COMPATIBLE == 0 ) */

/* If the network has just come up...*/
if( eNetworkEvent == eNetworkUp )
{
Expand Down Expand Up @@ -335,6 +337,10 @@ static void prvMiscInitialisation( void )
{
BaseType_t xReturn;

#if defined( ipconfigIPv4_BACKWARD_COMPATIBLE ) && ( ipconfigIPv4_BACKWARD_COMPATIBLE == 0 )
( void ) pxEndPoint;
#endif /* defined( ipconfigIPv4_BACKWARD_COMPATIBLE ) && ( ipconfigIPv4_BACKWARD_COMPATIBLE == 0 ) */

/* Determine if a name lookup is for this node. Two names are given
* to this node: that returned by pcApplicationHostnameHook() and that set
* by mainDEVICE_NICK_NAME. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ SECTIONS
_heap_top = .;
. = . + _Min_Stack_Size;
. = ALIGN(8);
} >RAM
} >RAM

/* Set stack top to end of RAM, and stack limit move down by
* size of stack_dummy section */
Expand Down
27 changes: 19 additions & 8 deletions FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2/startup.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,14 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "CMSIS/CMSDK_CM3.h"
#include "CMSIS/core_cm3.h"

extern void vPortSVCHandler( void );
extern void xPortPendSVHandler( void );
extern void xPortSysTickHandler( void );
extern void uart_init();
extern int main();
extern void uart_init( void );
extern int main( void );

void _start( void );
void __attribute__( ( weak ) ) EthernetISR( void );

extern uint32_t _estack, _sidata, _sdata, _edata, _sbss, _ebss;
Expand All @@ -63,7 +62,6 @@ void Reset_Handler( void )
}

/* jump to board initialisation */
void _start( void );
_start();
}

Expand Down Expand Up @@ -96,6 +94,16 @@ void prvGetRegistersFromStack( uint32_t * pulFaultStackAddress )
for( ; ; )
{
}

/* Remove the warning about unused variables. */
( void ) r0;
( void ) r1;
( void ) r2;
( void ) r3;
( void ) r12;
( void ) lr;
( void ) pc;
( void ) psr;
}

static void Default_Handler( void ) __attribute__( ( naked ) );
Expand All @@ -114,7 +122,8 @@ void Default_Handler( void )
"NVIC_INT_CTRL_CONST: .word 0xe000ed04\n"
);
}
static void HardFault_Handler( void ) __attribute__( ( naked ) );

static void Default_Handler2( void ) __attribute__( ( naked ) );
void Default_Handler2( void )
{
__asm volatile
Expand Down Expand Up @@ -158,7 +167,7 @@ void Default_Handler6( void )
}
}

const uint32_t * isr_vector[] __attribute__( ( section( ".isr_vector" ) ) ) =
const uint32_t * const isr_vector[] __attribute__( ( section( ".isr_vector" ) ) ) =
{
( uint32_t * ) &_estack,
( uint32_t * ) &Reset_Handler, /* Reset -15 */
Expand Down Expand Up @@ -195,7 +204,7 @@ const uint32_t * isr_vector[] __attribute__( ( section( ".isr_vector" ) ) ) =
void _start( void )
{
uart_init();
main( 0, 0 );
main();
exit( 0 );
}

Expand All @@ -212,4 +221,6 @@ __attribute__( ( naked ) ) void exit( int status )
"bkpt 0xab\n"
"end: b end\n"
);

( void ) status;
}
Loading

0 comments on commit a3eb9b4

Please sign in to comment.