FreeRTOSConfig.h 2.3 KB
Newer Older
Rahix's avatar
Rahix committed
1
2
3
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H

Rahix's avatar
Rahix committed
4
5
6
#define  MXC_ASSERT_ENABLE
#include "mxc_assert.h"

Rahix's avatar
Rahix committed
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "max32665.h"

/* CMSIS keeps a global updated with current system clock in Hz */
#define configCPU_CLOCK_HZ          ((unsigned long)120000000)

/* TODO: Adjust this for tickless idle */
#define configTICK_RATE_HZ          ((portTickType)1000)

/* Memory */
#define configTOTAL_HEAP_SIZE       ((size_t)(26 * 1024))
#define configMINIMAL_STACK_SIZE    ((unsigned short)128)

#define configMAX_PRIORITIES        5
/* # of priority bits (configured in hardware) is provided by CMSIS */
#define configPRIO_BITS             __NVIC_PRIO_BITS
/* Priority 7, or 255 as only the top three bits are implemented.  This is the lowest priority. */
#define configKERNEL_INTERRUPT_PRIORITY       ( ( unsigned char ) 7 << ( 8 - configPRIO_BITS) )
/* Priority 5, or 160 as only the top three bits are implemented. */
#define configMAX_SYSCALL_INTERRUPT_PRIORITY  ( ( unsigned char ) 5 << ( 8 - configPRIO_BITS) )  

/* We want to use preemption to easier integrate components */
Rahix's avatar
Rahix committed
28
29
30
31
32
33
34
35
/* TODO: Figure out why turning this on does not work ... */
#define configUSE_PREEMPTION        0

/*
 * Tickless idle from the FreeRTOS port + our own hooks (defined further down in
 * this file)
 */
#define configUSE_TICKLESS_IDLE     1
Rahix's avatar
Rahix committed
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

/* TODO: Adjust */
#define configUSE_IDLE_HOOK         0
#define configUSE_TICK_HOOK         0
#define configUSE_CO_ROUTINES       0
#define configUSE_16_BIT_TICKS      0
#define configUSE_MUTEXES           1

#define INCLUDE_vTaskSuspend        1
#define INCLUDE_vTaskDelay          1

/* Allow static allocation of data structures */
#define configSUPPORT_STATIC_ALLOCATION 1

/* Alias the default handler names to match CMSIS weak symbols */
#define vPortSVCHandler       SVC_Handler
#define xPortPendSVHandler    PendSV_Handler
#define xPortSysTickHandler   SysTick_Handler

Rahix's avatar
Rahix committed
55
56
57
58
59
60
61
62
63
64
65
66
67
/* Assert */
#define configASSERT(x)       MXC_ASSERT(x)

/* Tickless idle hooks */
typedef uint32_t TickType_t;
void pre_idle_sleep(TickType_t xExpectedIdleTime);
#define configPRE_SLEEP_PROCESSING(xModifiableIdleTime) \
	pre_idle_sleep(xModifiableIdleTime); xModifiableIdleTime = 0

void post_idle_sleep(TickType_t xExpectedIdleTime);
#define configPOST_SLEEP_PROCESSING(xExpectedIdleTime) \
	post_idle_sleep(xExpectedIdleTime)

Rahix's avatar
Rahix committed
68
#endif /* FREERTOS_CONFIG_H */