WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
los_config.h
浏览该文件的文档.
1/* ----------------------------------------------------------------------------
2 * Copyright (c) Huawei Technologies Co., Ltd. 2013-2021. All rights reserved.
3 * Description: System Config HeadFile
4 * Author: Huawei LiteOS Team
5 * Create: 2013-01-01
6 * Redistribution and use in source and binary forms, with or without modification,
7 * are permitted provided that the following conditions are met:
8 * 1. Redistributions of source code must retain the above copyright notice, this list of
9 * conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, this list
11 * of conditions and the following disclaimer in the documentation and/or other materials
12 * provided with the distribution.
13 * 3. Neither the name of the copyright holder nor the names of its contributors may be used
14 * to endorse or promote products derived from this software without specific prior written
15 * permission.
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
18 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
20 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 * --------------------------------------------------------------------------- */
28
34#ifndef _LOS_CONFIG_H
35#define _LOS_CONFIG_H
36
37#include "los_typedef.h"
38#ifndef LOSCFG_MAKE_COMPILER_LIBS
39#include "asm/memmap_config.h"
40#include "soc/clock.h"
41#include "asm/platform.h"
42#endif
43
44#ifdef __cplusplus
45extern "C" {
46#endif /* __cplusplus */
47
48#ifdef LOSCFG_LIB_CONFIGURABLE
49extern UINT32 g_osSysClock;
51extern UINT32 g_taskLimit;
52extern UINT32 g_taskMinStkSize;
53extern UINT32 g_taskIdleStkSize;
54extern UINT32 g_taskDfltStkSize;
55extern UINT32 g_taskSwtmrStkSize;
56extern UINT32 g_swtmrLimit;
57extern UINT32 g_semLimit;
58extern UINT32 g_rwsemLimit;
59extern UINT32 g_muxLimit;
60extern UINT32 g_queueLimit;
61extern UINT32 g_timeSliceTimeOut;
62
63extern BOOL g_nxEnabled;
64extern UINTPTR g_dlNxHeapBase;
65extern UINT32 g_dlNxHeapSize;
66
67#define LOS_GET_NX_CFG() (g_nxEnabled)
68#define LOS_SET_NX_CFG(value) (g_nxEnabled = (value))
69#define LOS_GET_DL_NX_HEAP_BASE() (g_dlNxHeapBase)
70#define LOS_SET_DL_NX_HEAP_BASE(addr) (g_dlNxHeapBase = (addr))
71#define LOS_GET_DL_NX_HEAP_SIZE() (g_dlNxHeapSize)
72#define LOS_SET_DL_NX_HEAP_SIZE(size) (g_dlNxHeapSize = (size))
73
74#define OS_SYS_CLOCK g_osSysClock
75#define KERNEL_TICK_PER_SECOND g_tickPerSecond
76#define KERNEL_TSK_LIMIT g_taskLimit
77#define KERNEL_TSK_MIN_STACK_SIZE g_taskMinStkSize
78#define KERNEL_TSK_DEFAULT_STACK_SIZE g_taskDfltStkSize
79#define KERNEL_TSK_IDLE_STACK_SIZE g_taskIdleStkSize
80#define KERNEL_TSK_SWTMR_STACK_SIZE g_taskSwtmrStkSize
81#define KERNEL_SWTMR_LIMIT g_swtmrLimit
82#define KERNEL_SEM_LIMIT g_semLimit
83#define KERNEL_RWSEM_LIMIT g_rwsemLimit
84#define KERNEL_MUX_LIMIT g_muxLimit
85#define KERNEL_QUEUE_LIMIT g_queueLimit
86#define KERNEL_TIMESLICE_TIMEOUT g_timeSliceTimeOut
87#else /* !LOSCFG_LIB_CONFIGURABLE */
88
89#ifdef LOSCFG_KERNEL_NX
90#define LOS_GET_NX_CFG() true
91#define LOS_SET_NX_CFG(value)
92#define LOS_GET_DL_NX_HEAP_BASE() LOS_DL_HEAP_BASE
93#define LOS_SET_DL_NX_HEAP_BASE(addr)
94#define LOS_GET_DL_NX_HEAP_SIZE() LOS_DL_HEAP_SIZE
95#define LOS_SET_DL_NX_HEAP_SIZE(size)
96#else /* LOSCFG_KERNEL_NX */
97#define LOS_GET_NX_CFG() false
98#define LOS_SET_NX_CFG(value)
99#define LOS_GET_DL_NX_HEAP_BASE() NULL
100#define LOS_SET_DL_NX_HEAP_BASE(addr)
101#define LOS_GET_DL_NX_HEAP_SIZE() 0
102#define LOS_SET_DL_NX_HEAP_SIZE(size)
103#endif /* LOSCFG_KERNEL_NX */
104
105#define KERNEL_TICK_PER_SECOND LOSCFG_BASE_CORE_TICK_PER_SECOND
106#define KERNEL_TSK_LIMIT LOSCFG_BASE_CORE_TSK_LIMIT
107#define KERNEL_TSK_MIN_STACK_SIZE LOSCFG_BASE_CORE_TSK_MIN_STACK_SIZE
108#define KERNEL_TSK_DEFAULT_STACK_SIZE LOSCFG_BASE_CORE_TSK_DEFAULT_STACK_SIZE
109#define KERNEL_TSK_IDLE_STACK_SIZE LOSCFG_BASE_CORE_TSK_IDLE_STACK_SIZE
110#define KERNEL_TSK_SWTMR_STACK_SIZE LOSCFG_BASE_CORE_TSK_SWTMR_STACK_SIZE
111#define KERNEL_SWTMR_LIMIT LOSCFG_BASE_CORE_SWTMR_LIMIT
112#define KERNEL_SEM_LIMIT LOSCFG_BASE_IPC_SEM_LIMIT
113#define KERNEL_RWSEM_LIMIT LOSCFG_BASE_IPC_RWSEM_LIMIT
114#define KERNEL_MUX_LIMIT LOSCFG_BASE_IPC_MUX_LIMIT
115#define KERNEL_QUEUE_LIMIT LOSCFG_BASE_IPC_QUEUE_LIMIT
116#define KERNEL_TIMESLICE_TIMEOUT LOSCFG_BASE_CORE_TIMESLICE_TIMEOUT
117
118#endif /* LOSCFG_LIB_CONFIGURABLE */
119
123/* conflict with int __text_start in compiler */
124#ifndef LOSCFG_MAKE_COMPILER_LIBS
126#else
127typedef int LD_SYMBOL_TYPE;
128#endif
146
147/****************************** System clock module configuration ****************************/
152#ifndef OS_SYS_CLOCK
153#define OS_SYS_CLOCK (get_bus_clk())
154#endif
159#ifndef OS_TIME_TIMER_CLOCK
160#define OS_TIME_TIMER_CLOCK OS_SYS_CLOCK
161#endif
162
168
169#ifdef LOSCFG_EXC_INTERACTION
174extern UINTPTR g_excInteractMemSize;
175#endif
176
180#ifndef OS_SYS_FUNC_ADDR_START
181#define OS_SYS_FUNC_ADDR_START ((UINTPTR)&__int_stack_start)
182#endif
183#ifndef OS_SYS_FUNC_ADDR_END
184#define OS_SYS_FUNC_ADDR_END g_sys_mem_addr_end
185#endif
186
191#ifndef LOSCFG_BASE_CORE_ADJ_PER_SECOND
192#define LOSCFG_BASE_CORE_ADJ_PER_SECOND 500
193#endif
194
199#define SCHED_CLOCK_INTETRVAL_TICKS 100
200
201/****************************** Swtmr module configuration ********************************/
208#ifndef OS_SWTMR_MAX_TIMERID
209#define OS_SWTMR_MAX_TIMERID ((0xFFFF / KERNEL_SWTMR_LIMIT) * KERNEL_SWTMR_LIMIT)
210#endif
215#ifndef OS_SWTMR_HANDLE_QUEUE_SIZE
216#define OS_SWTMR_HANDLE_QUEUE_SIZE KERNEL_SWTMR_LIMIT
217#endif
218
219/****************************** Memory module configuration **************************/
224#ifndef OS_SYS_MEM_ADDR
225#define OS_SYS_MEM_ADDR (&__heap_start)
226#endif
227
233#if defined (LOSCFG_KERNEL_NX) && defined (LOSCFG_KERNEL_DYNLOAD)
234#define LOS_DL_HEAP_SIZE (LOSCFG_KERNEL_DYN_HEAPSIZE * 0x100000)
235#define LOS_DL_HEAP_BASE (SYS_MEM_END - LOS_DL_HEAP_SIZE)
236#else
237#define LOS_DL_HEAP_SIZE 0
238#define LOS_DL_HEAP_BASE 0
239#endif
240
245#ifndef OS_SYS_MEM_SIZE
246#define OS_SYS_MEM_SIZE ((g_sys_mem_addr_end) - \
247 ((LOS_DL_HEAP_SIZE + ((UINTPTR)&__heap_start) + (64 - 1)) & ~(64 - 1)))
248#endif
249
250/****************************** fw Interface configuration **************************/
255#ifdef LOSCFG_KERNEL_SMP
256#define LOSCFG_KERNEL_CORE_NUM LOSCFG_KERNEL_SMP_CORE_NUM
257#else
258#define LOSCFG_KERNEL_CORE_NUM 1
259#endif
260
261#define LOSCFG_KERNEL_CPU_MASK ((1 << LOSCFG_KERNEL_CORE_NUM) - 1)
262
263/****************************** trace module configuration **************************/
270#ifdef LOSCFG_KERNEL_TRACE
271#ifdef LOSCFG_RECORDER_MODE_OFFLINE
272#ifdef LOSCFG_KERNEL_MEM_ALLOC
273#define LOS_TRACE_BUFFER_SIZE LOSCFG_TRACE_BUFFER_SIZE
274#else // !LOSCFG_KERNEL_MEM_ALLOC
275#define LOS_TRACE_BUFFER_SIZE ((UINT32)(&__trace_buf_end - &__trace_buf_start))
276#endif
277#else
278#define LOS_TRACE_BUFFER_SIZE 0
279#endif
280#endif
281
285#define _T(x) x
286#define HW_LITEOS_SYSNAME "Huawei LiteOS"
287#define HW_LITEOS_SEP " "
288#define _V(v) _T(HW_LITEOS_SYSNAME)_T(HW_LITEOS_SEP)_T(v)
289
290#define HW_LITEOS_VERSION "208.5.0.B010"
291#define HW_LITEOS_VER _V(HW_LITEOS_VERSION"-SMP")
292
296#define MAJ_V 5
297#define MIN_V 5
298#define REL_V 0
299
303#define EXTRA_V 0
304
305#define VERSION_NUM(a, b, c) (((a) << 16) | ((b) << 8) | (c))
306#define HW_LITEOS_OPEN_VERSION_NUM VERSION_NUM(MAJ_V, MIN_V, REL_V)
307
308#define STRINGIFY_1(x) #x
309#define STRINGIFY(x) STRINGIFY_1(x)
310
311#define HW_LITEOS_OPEN_VERSION_STRING STRINGIFY(MAJ_V) "." STRINGIFY(MIN_V) "." STRINGIFY(REL_V)
312#if (EXTRA_V != 0)
313#define HW_LITEOS_KERNEL_VERSION_STRING HW_LITEOS_OPEN_VERSION_STRING "-rc" STRINGIFY(EXTRA_V)
314#else
315#define HW_LITEOS_KERNEL_VERSION_STRING HW_LITEOS_OPEN_VERSION_STRING
316#endif
317
318#ifdef __cplusplus
319}
320#endif /* __cplusplus */
321
322#endif /* _LOS_CONFIG_H */
UINTPTR g_sys_mem_addr_end
UINT32 g_tickPerSecond
LD_SYMBOL_TYPE __text_start
LD_SYMBOL_TYPE __trace_buf_start
LD_SYMBOL_TYPE __rodata_start
LD_SYMBOL_TYPE __init_array_start
LD_SYMBOL_TYPE __trace_buf_end
LD_SYMBOL_TYPE __int_stack_end
LD_SYMBOL_TYPE __exc_heap_start
LD_SYMBOL_TYPE __init_array_end
CHAR LD_SYMBOL_TYPE
Definition los_config.h:125
LD_SYMBOL_TYPE __text_end
LD_SYMBOL_TYPE __bss_end
LD_SYMBOL_TYPE __ram_data_start
LD_SYMBOL_TYPE __exc_heap_end
LD_SYMBOL_TYPE __bss_start
LD_SYMBOL_TYPE __heap_start
LD_SYMBOL_TYPE __rodata_end
LD_SYMBOL_TYPE __int_stack_start
LD_SYMBOL_TYPE __ram_data_end
unsigned int UINTPTR
Definition los_typedef.h:74
unsigned int UINT32
Definition los_typedef.h:52
char CHAR
Definition los_typedef.h:58
size_t BOOL
Definition los_typedef.h:83