Compare commits

...

2 Commits

Author SHA1 Message Date
Alexey Bazlaev 4fb1bf9f11 Modified configuration 2023-04-10 18:05:01 +07:00
Alexey Bazlaev de97de9223 Fixed number of sockets in TCP_Echo_Server 2023-04-07 19:05:06 +07:00
8 changed files with 247 additions and 130 deletions

View File

@ -161,7 +161,6 @@ socklen_t xSize = sizeof( xClient );
static const TickType_t xReceiveTimeOut = portMAX_DELAY;
const BaseType_t xBacklog = 1;
#if( ipconfigUSE_TCP_WIN == 1 )
WinProperties_t xWinProps;
@ -174,6 +173,8 @@ const BaseType_t xBacklog = 1;
/* Just to prevent compiler warnings. */
( void ) pvParameters;
#ifdef DEBUG_LISTEN_SOCK
/* Attempt to open the socket. */
xListeningSocket = FreeRTOS_socket( FREERTOS_AF_INET, FREERTOS_SOCK_STREAM, FREERTOS_IPPROTO_TCP );
@ -221,6 +222,57 @@ const BaseType_t xBacklog = 1;
/* Spawn a task to handle the connection. */
xTaskCreate( prvServerConnectionInstance, "EchoServer", usUsedStackSize, ( void * ) xConnectedSocket, tskIDLE_PRIORITY + 1, &prvServerConnectionInstance_Handle );
}
#else /*DEBUG_LISTEN_SOCK*/
for( ;; )
{
/* Delete previous suspended EchoServer task if it was created. */
if (prvServerConnectionInstance_Handle && eSuspended == eTaskGetState( prvServerConnectionInstance_Handle) )
{
vTaskDelete( prvServerConnectionInstance_Handle );
}
/* Attempt to open the socket. */
xListeningSocket = FreeRTOS_socket( FREERTOS_AF_INET, FREERTOS_SOCK_STREAM, FREERTOS_IPPROTO_TCP );
configASSERT( xListeningSocket != FREERTOS_INVALID_SOCKET );
/* Set a time out so accept() will just wait for a connection. */
FreeRTOS_setsockopt( xListeningSocket, 0, FREERTOS_SO_RCVTIMEO, &xReceiveTimeOut, sizeof( xReceiveTimeOut ) );
/* Set the window and buffer sizes. */
#if( ipconfigUSE_TCP_WIN == 1 )
{
FreeRTOS_setsockopt( xListeningSocket, 0, FREERTOS_SO_WIN_PROPERTIES|FREERTOS_SO_REUSE_LISTEN_SOCKET, ( void * ) &xWinProps, sizeof( xWinProps ) );
}
#endif /* ipconfigUSE_TCP_WIN */
/* Bind the socket to the port that the client task will send to, then
listen for incoming connections. */
xBindAddress.sin_port = tcpechoPORT_NUMBER;
xBindAddress.sin_port = FreeRTOS_htons( xBindAddress.sin_port );
#if (ipconfigUSE_DHCP == 0)
xBindAddress.sin_addr = FreeRTOS_htonl(xNetworkAddressing.ulDefaultIPAddress);
#endif
FreeRTOS_bind( xListeningSocket, &xBindAddress, sizeof( xBindAddress ) );
FreeRTOS_listen( xListeningSocket, xBacklog );
/* Wait for a client to connect. */
xConnectedSocket = FreeRTOS_accept( xListeningSocket, &xClient, &xSize );
configASSERT( xConnectedSocket != FREERTOS_INVALID_SOCKET );
//FreeRTOS_debug_printf(("Heap size TCP 0 = %d\n", xPortGetFreeHeapSize()));
#ifdef DEBUG
size_t FreeHeapSize = xPortGetFreeHeapSize();
if(FreeHeapSize < 25032)//45520)
{
FreeRTOS_printf(("[LISTEN_TASK] FreeHeapSize = %d\n", FreeHeapSize));
}
#endif
/* Spawn a task to handle the connection. */
xTaskCreate( prvServerConnectionInstance, "EchoServer", usUsedStackSize, ( void * ) xConnectedSocket, tskIDLE_PRIORITY + 1, &prvServerConnectionInstance_Handle );
}
#endif /*DEBUG_LISTEN_SOCK*/
}
/*-----------------------------------------------------------*/

View File

@ -84,7 +84,7 @@
* pxPacketBuffer_to_NetworkBuffer() will translate a buffer address to a
* network packet, so it can be passed to the IP-task. */
#define ipconfigZERO_COPY_RX_DRIVER ( 1 )
#define ipconfigZERO_COPY_RX_DRIVER ( 0 )
//#define ipconfigUSE_LLMNR 1
//#define ipconfigUSE_NBNS 1

View File

@ -649,7 +649,7 @@ BaseType_t xNetworkInterfaceInitialise( void )
#ifdef CENTRALISED_DEFERRED_IRQ_HADLING
if (NULL == receiveHandler)
{
xTaskCreate( receiveHandlerTask, "receiveHandlerTask", 1000, NULL, tskIDLE_PRIORITY + 1, &receiveHandler );
xTaskCreate( receiveHandlerTask, "receiveHandlerTask", 1000, NULL, tskIDLE_PRIORITY + 2, &receiveHandler );
}
if ( receiveHandler != NULL)
xResult = pdPASS;

View File

@ -64,7 +64,11 @@ extern uint32_t SystemCoreClock;
#define configUSE_16_BIT_TICKS 0
/* Software timer definitions. */
#ifdef CENTRALISED_DEFERRED_IRQ_HADLING
#define configUSE_TIMERS 0
#else
#define configUSE_TIMERS 1
#endif
#define configTIMER_TASK_PRIORITY 2
#define configTIMER_QUEUE_LENGTH 5
#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2)
@ -146,7 +150,11 @@ extern uint32_t SystemCoreClock;
#define INCLUDE_uxTaskGetStackHighWaterMark2 1
#define INCLUDE_eTaskGetState 1
#define INCLUDE_xTaskResumeFromISR 1
#ifdef CENTRALISED_DEFERRED_IRQ_HADLING
#define INCLUDE_xTimerPendFunctionCall 0
#else
#define INCLUDE_xTimerPendFunctionCall 1
#endif
#define INCLUDE_xTaskGetSchedulerState 1
#define INCLUDE_xTaskGetCurrentTaskHandle 1

View File

@ -24,8 +24,6 @@
#define RTE_RTOS_FreeRTOS_EVENTGROUPS /* RTOS FreeRTOS Event Groups */
/* ARM.FreeRTOS::RTOS:Heap:Heap_4:10.5.1 */
#define RTE_RTOS_FreeRTOS_HEAP_4 /* RTOS FreeRTOS Heap 4 */
/* ARM.FreeRTOS::RTOS:Timers:10.5.1 */
#define RTE_RTOS_FreeRTOS_TIMERS /* RTOS FreeRTOS Timers */
/* GigaDevice::Device:GD32F10x_StdPeripherals:BKP:2.0.2 */
#define RTE_DEVICE_STDPERIPHERALS_BKP
/* GigaDevice::Device:GD32F10x_StdPeripherals:DMA:2.0.2 */

File diff suppressed because one or more lines are too long

View File

@ -158,29 +158,119 @@
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>pxDMARxDescriptor</ItemText>
<ItemText>tickCounter</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>dma_current_rxdesc</ItemText>
<ItemText>xBoundTCPSocketsList</ItemText>
</Ww>
<Ww>
<count>2</count>
<WinNumber>1</WinNumber>
<ItemText>pxDescriptor</ItemText>
<ItemText>mac</ItemText>
</Ww>
<Ww>
<count>3</count>
<WinNumber>1</WinNumber>
<ItemText>pucTemp</ItemText>
<ItemText>PHY</ItemText>
</Ww>
<Ww>
<count>4</count>
<WinNumber>1</WinNumber>
<ItemText>frame</ItemText>
</Ww>
<Ww>
<count>5</count>
<WinNumber>1</WinNumber>
<ItemText>dma_current_txdesc</ItemText>
</Ww>
<Ww>
<count>6</count>
<WinNumber>1</WinNumber>
<ItemText>xDHCPSocket</ItemText>
</Ww>
<Ww>
<count>7</count>
<WinNumber>1</WinNumber>
<ItemText>pucRxBuffer</ItemText>
</Ww>
<Ww>
<count>8</count>
<WinNumber>1</WinNumber>
<ItemText>EP_DHCPData</ItemText>
</Ww>
<Ww>
<count>9</count>
<WinNumber>1</WinNumber>
<ItemText>EP_IPv4_SETTINGS</ItemText>
</Ww>
<Ww>
<count>10</count>
<WinNumber>1</WinNumber>
<ItemText>xDHCPData</ItemText>
</Ww>
<Ww>
<count>11</count>
<WinNumber>1</WinNumber>
<ItemText>xNetworkAddressing</ItemText>
</Ww>
<Ww>
<count>12</count>
<WinNumber>1</WinNumber>
<ItemText>eLeasedAddress</ItemText>
</Ww>
<Ww>
<count>13</count>
<WinNumber>1</WinNumber>
<ItemText>pxSocket</ItemText>
</Ww>
<Ww>
<count>14</count>
<WinNumber>1</WinNumber>
<ItemText>prvServerConnectionInstance_Handle</ItemText>
</Ww>
<Ww>
<count>15</count>
<WinNumber>1</WinNumber>
<ItemText>pvBuffer</ItemText>
</Ww>
<Ww>
<count>16</count>
<WinNumber>1</WinNumber>
<ItemText>pxCurrentTCB</ItemText>
</Ww>
<Ww>
<count>17</count>
<WinNumber>1</WinNumber>
<ItemText>receiveBufferDescriptor</ItemText>
</Ww>
<Ww>
<count>18</count>
<WinNumber>1</WinNumber>
<ItemText>xNetworkEventQueue</ItemText>
</Ww>
<Ww>
<count>19</count>
<WinNumber>1</WinNumber>
<ItemText>FreeHeapSize</ItemText>
</Ww>
<Ww>
<count>20</count>
<WinNumber>1</WinNumber>
<ItemText>pucRxBuffer</ItemText>
</Ww>
<Ww>
<count>21</count>
<WinNumber>1</WinNumber>
<ItemText>lBytes,0x0A</ItemText>
</Ww>
</WatchWindow1>
<MemoryWindow1>
<Mm>
<WinNumber>1</WinNumber>
<SubType>0</SubType>
<ItemText>\\Test_project_for_GD32107C_EVAL\FreeRTOS/source/portable/NetworkInterface/board_family/NetworkInterface.c\receiveHandlerTask\pxDescriptor-&gt;pucEthernetBuffer</ItemText>
<ItemText>pucRxBuffer</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow1>
@ -201,7 +291,7 @@
</Mm>
</MemoryWindow3>
<ScvdPack>
<Filename>E:\Arm\Packs\ARM\CMSIS-FreeRTOS\10.5.1\CMSIS\RTOS2\FreeRTOS\FreeRTOS.scvd</Filename>
<Filename>C:\Users\User\AppData\Local\Arm\Packs\ARM\CMSIS-FreeRTOS\10.5.1\CMSIS\RTOS2\FreeRTOS\FreeRTOS.scvd</Filename>
<Type>ARM.CMSIS-FreeRTOS.10.5.1</Type>
<SubType>1</SubType>
</ScvdPack>
@ -213,7 +303,7 @@
<periodic>1</periodic>
<aLwin>1</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer1>1</aSer1>
<aSer2>0</aSer2>
<aPa>0</aPa>
<viewmode>1</viewmode>

View File

@ -338,8 +338,8 @@
<v6WtE>0</v6WtE>
<v6Rtti>0</v6Rtti>
<VariousControls>
<MiscControls>-D DEBUG -Wno-pragma-pack -Wno-macro-redefined -D CENTRALISED_DEFERRED_IRQ_HADLING</MiscControls>
<Define></Define>
<MiscControls>-D DEBUG -Wno-pragma-pack -Wno-macro-redefined</MiscControls>
<Define>DEBUG_LISTEN_SOCK</Define>
<Undefine></Undefine>
<IncludePath>.\FreeRTOS\source\portable\NetworkInterface\include;.\FreeRTOS\source\include;.\FreeRTOS\source\portable\Compiler\Keil;.\DemoTasks\include;..\GigaDevice_test;.\include;.\PHY</IncludePath>
</VariousControls>
@ -795,12 +795,6 @@
<targetInfo name="Target 1"/>
</targetInfos>
</component>
<component Cbundle="FreeRTOS" Cclass="RTOS" Cgroup="Timers" Cvendor="ARM" Cversion="10.5.1" condition="FreeRTOS Timers">
<package name="CMSIS-FreeRTOS" schemaVersion="1.7.7" url="https://www.keil.com/pack/" vendor="ARM" version="10.5.1"/>
<targetInfos>
<targetInfo name="Target 1"/>
</targetInfos>
</component>
<component Capiversion="2.2.0" Cclass="CMSIS Driver" Cgroup="Ethernet MAC" Csub="Custom" Cvendor="ARM" Cversion="1.0.0" custom="1">
<package name="CMSIS" schemaVersion="1.7.7" url="http://www.keil.com/pack/" vendor="ARM" version="5.9.0"/>
<targetInfos>