Skip to content

Commit 341d291

Browse files
committed
initial
Signed-off-by: Yasushi SHOJI <[email protected]>
0 parents  commit 341d291

File tree

5 files changed

+178
-0
lines changed

5 files changed

+178
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*~

FreeRTOSConfig.h

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
/*
2+
* FreeRTOS V202107.00
3+
* Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4+
*
5+
* Permission is hereby granted, free of charge, to any person obtaining a copy of
6+
* this software and associated documentation files (the "Software"), to deal in
7+
* the Software without restriction, including without limitation the rights to
8+
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9+
* the Software, and to permit persons to whom the Software is furnished to do so,
10+
* subject to the following conditions:
11+
*
12+
* The above copyright notice and this permission notice shall be included in all
13+
* copies or substantial portions of the Software.
14+
*
15+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17+
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18+
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19+
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20+
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21+
*
22+
* https://www.FreeRTOS.org
23+
* https://github.com/FreeRTOS
24+
*
25+
*/
26+
#ifndef FREERTOS_CONFIG_H
27+
#define FREERTOS_CONFIG_H
28+
29+
/*-----------------------------------------------------------
30+
* Application specific definitions.
31+
*
32+
* These definitions should be adjusted for your particular hardware and
33+
* application requirements.
34+
*
35+
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
36+
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. See
37+
* http://www.freertos.org/a00110.html
38+
*----------------------------------------------------------*/
39+
40+
#define configUSE_PREEMPTION 1
41+
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
42+
#define configUSE_IDLE_HOOK 1
43+
#define configUSE_TICK_HOOK 1
44+
#define configUSE_DAEMON_TASK_STARTUP_HOOK 1
45+
#define configTICK_RATE_HZ ( 1000 ) /* In this non-real time simulated environment the tick frequency has to be at least a multiple of the Win32 tick frequency, and therefore very slow. */
46+
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 70 ) /* In this simulated case, the stack only has to hold one small structure as the real stack is part of the win32 thread. */
47+
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 65 * 1024 ) )
48+
#define configMAX_TASK_NAME_LEN ( 12 )
49+
#define configUSE_TRACE_FACILITY 1
50+
#define configUSE_16_BIT_TICKS 0
51+
#define configIDLE_SHOULD_YIELD 1
52+
#define configUSE_MUTEXES 1
53+
#define configCHECK_FOR_STACK_OVERFLOW 0
54+
#define configUSE_RECURSIVE_MUTEXES 1
55+
#define configQUEUE_REGISTRY_SIZE 20
56+
#define configUSE_APPLICATION_TASK_TAG 1
57+
#define configUSE_COUNTING_SEMAPHORES 1
58+
#define configUSE_ALTERNATIVE_API 0
59+
#define configUSE_QUEUE_SETS 1
60+
#define configUSE_TASK_NOTIFICATIONS 1
61+
#define configSUPPORT_DYNAMIC_ALLOCATION 0
62+
#define configSUPPORT_STATIC_ALLOCATION 1
63+
64+
/* Software timer related configuration options. The maximum possible task
65+
* priority is configMAX_PRIORITIES - 1. The priority of the timer task is
66+
* deliberately set higher to ensure it is correctly capped back to
67+
* configMAX_PRIORITIES - 1. */
68+
#define configUSE_TIMERS 1
69+
#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )
70+
#define configTIMER_QUEUE_LENGTH 20
71+
#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
72+
73+
#define configMAX_PRIORITIES ( 7 )
74+
75+
/* Run time stats gathering configuration options. */
76+
unsigned long ulGetRunTimeCounterValue( void ); /* Prototype of function that returns run time counter. */
77+
void vConfigureTimerForRunTimeStats( void ); /* Prototype of function that initialises the run time counter. */
78+
#define configGENERATE_RUN_TIME_STATS 1
79+
80+
/* Co-routine related configuration options. */
81+
#define configUSE_CO_ROUTINES 0
82+
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
83+
84+
/* This demo can use of one or more example stats formatting functions. These
85+
* format the raw data provided by the uxTaskGetSystemState() function in to human
86+
* readable ASCII form. See the notes in the implementation of vTaskList() within
87+
* FreeRTOS/Source/tasks.c for limitations. */
88+
#define configUSE_STATS_FORMATTING_FUNCTIONS 0
89+
90+
/* Enables the test whereby a stack larger than the total heap size is
91+
* requested. */
92+
#define configSTACK_DEPTH_TYPE uint32_t
93+
94+
/* Set the following definitions to 1 to include the API function, or zero
95+
* to exclude the API function. In most cases the linker will remove unused
96+
* functions anyway. */
97+
#define INCLUDE_vTaskPrioritySet 1
98+
#define INCLUDE_uxTaskPriorityGet 1
99+
#define INCLUDE_vTaskDelete 1
100+
#define INCLUDE_vTaskCleanUpResources 0
101+
#define INCLUDE_vTaskSuspend 1
102+
#define INCLUDE_vTaskDelayUntil 1
103+
#define INCLUDE_vTaskDelay 1
104+
#define INCLUDE_uxTaskGetStackHighWaterMark 1
105+
#define INCLUDE_uxTaskGetStackHighWaterMark2 1
106+
#define INCLUDE_xTaskGetSchedulerState 1
107+
#define INCLUDE_xTimerGetTimerDaemonTaskHandle 1
108+
#define INCLUDE_xTaskGetIdleTaskHandle 1
109+
#define INCLUDE_xTaskGetHandle 1
110+
#define INCLUDE_eTaskGetState 1
111+
#define INCLUDE_xSemaphoreGetMutexHolder 1
112+
#define INCLUDE_xTimerPendFunctionCall 1
113+
#define INCLUDE_xTaskAbortDelay 1
114+
115+
extern void vAssertCalled( const char * const pcFileName,
116+
unsigned long ulLine );
117+
118+
/* It is a good idea to define configASSERT() while developing. configASSERT()
119+
* uses the same semantics as the standard C assert() macro. Don't define
120+
* configASSERT() when performing code coverage tests though, as it is not
121+
* intended to asserts() to fail, some some code is intended not to run if no
122+
* errors are present. */
123+
#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled( __FILE__, __LINE__ )
124+
125+
#define configUSE_MALLOC_FAILED_HOOK 1
126+
127+
/* Prototype for the function used to print out. In this case it prints to the
128+
* console before the network is connected then a UDP port after the network has
129+
* connected. */
130+
extern void vLoggingPrintf( const char * pcFormatString,
131+
... );
132+
133+
#endif /* FREERTOS_CONFIG_H */

hooks.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#include "FreeRTOS.h"
2+
#include "task.h"
3+
4+
void vApplicationIdleHook(void) {}
5+
void vApplicationStackOverflowHook(TaskHandle_t pxTask, char * pcTaskName) {}
6+
void vApplicationTickHook(void) {}
7+
void vApplicationDaemonTaskStartupHook(void) {}
8+
void vAssertCalled(const char * const pcFileName, unsigned long ulLine) {}
9+
void vApplicationGetIdleTaskMemory(StaticTask_t ** ppxIdleTaskTCBBuffer,
10+
StackType_t ** ppxIdleTaskStackBuffer,
11+
uint32_t * pulIdleTaskStackSize) {}
12+
void vApplicationGetTimerTaskMemory(StaticTask_t ** ppxTimerTaskTCBBuffer,
13+
StackType_t ** ppxTimerTaskStackBuffer,
14+
uint32_t * pulTimerTaskStackSize) {}

main.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#include "subprojects/libcsp/examples/csp_arch.c"

meson.build

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
project('libcsp-freertos', 'c')
2+
3+
cc = meson.get_compiler('c')
4+
5+
src = ['main.c',
6+
'hooks.c'
7+
]
8+
9+
src_freertos = ['freertos/list.c',
10+
'freertos/queue.c',
11+
'freertos/tasks.c',
12+
'freertos/timers.c',
13+
'freertos/portable/ThirdParty/GCC/Posix/port.c',
14+
'freertos/portable/ThirdParty/GCC/Posix/utils/wait_for_event.c',
15+
]
16+
17+
inc = include_directories('.',
18+
'freertos/include',
19+
'freertos/portable/ThirdParty/GCC/Posix',
20+
)
21+
22+
23+
libcsp = subproject('libcsp')
24+
libcsp_dep = libcsp.get_variable('csp_dep')
25+
26+
executable('demo',
27+
[src, src_freertos],
28+
include_directories : inc,
29+
dependencies : libcsp_dep)

0 commit comments

Comments
 (0)