[修改] 增加freeRTOS

1. 版本FreeRTOSv202212.01,命名为kernel;
This commit is contained in:
2023-05-06 16:43:01 +00:00
commit a345df017b
20944 changed files with 11094377 additions and 0 deletions

View File

@ -0,0 +1,32 @@
{
"ENTRY": "SkipNameField",
################################################################
# This is the network buffer size. This can be set to any positive value.
"NETWORK_BUFFER_SIZE": 10,
################################################################
# Loop DNS_SkipNameField.0:
# file lib/FreeRTOS-Plus-TCP/source/FreeRTOS_DNS.c line 778
# bound should be half network buffer size, since chunk length is at least 2
"SKIPLOOP0": "DNS_SkipNameField.0",
"SKIPLOOP0_UNWIND": "__eval ({NETWORK_BUFFER_SIZE} + 1) / 2",
################################################################
"CBMCFLAGS":
[
"--unwind 1",
"--unwindset {SKIPLOOP0}:{SKIPLOOP0_UNWIND}"
],
"OBJS":
[
"$(ENTRY)_harness.goto",
"$(FREERTOS_PLUS_TCP)/source/FreeRTOS_DNS_Parser.goto"
],
"DEF":
[
"NETWORK_BUFFER_SIZE={NETWORK_BUFFER_SIZE}"
]
}

View File

@ -0,0 +1,55 @@
/* Standard includes. */
#include <stdint.h>
/* FreeRTOS includes. */
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "list.h"
#include "semphr.h"
/* FreeRTOS+TCP includes. */
#include "FreeRTOS_IP.h"
#include "FreeRTOS_Sockets.h"
#include "FreeRTOS_IP_Private.h"
#include "FreeRTOS_UDP_IP.h"
#include "FreeRTOS_DNS.h"
#include "NetworkBufferManagement.h"
#include "NetworkInterface.h"
#include "IPTraceMacroDefaults.h"
#include "FreeRTOS_DNS_Parser.h"
#include "cbmc.h"
/****************************************************************
* Signature of function under test
****************************************************************/
size_t DNS_SkipNameField( const uint8_t * pucByte,
size_t uxLength );
/****************************************************************
* Proof of DNS_SkipNameField function contract
****************************************************************/
void harness()
{
__CPROVER_assert( NETWORK_BUFFER_SIZE < CBMC_MAX_OBJECT_SIZE,
"NETWORK_BUFFER_SIZE < CBMC_MAX_OBJECT_SIZE" );
size_t uxLength;
uint8_t * pucByte = malloc( uxLength );
/* Preconditions */
__CPROVER_assume( uxLength < CBMC_MAX_OBJECT_SIZE );
__CPROVER_assume( uxLength <= NETWORK_BUFFER_SIZE );
__CPROVER_assume( pucByte != NULL );
size_t index = DNS_SkipNameField( pucByte, uxLength );
/* Postconditions */
__CPROVER_assert( index <= uxLength,
"DNS_SkipNameField: index <= uxLength" );
}