1 /* 2 * Copyright (c) 2009-2022 Huawei Technologies Co., Ltd. All rights reserved. 3 * 4 * UniProton is licensed under Mulan PSL v2. 5 * You can use this software according to the terms and conditions of the Mulan PSL v2. 6 * You may obtain a copy of Mulan PSL v2 at: 7 * http://license.coscl.org.cn/MulanPSL2 8 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 9 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 10 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 11 * See the Mulan PSL v2 for more details. 12 * Create: 2009-12-22 13 * Description: UniProton配置头文件,裁剪开关和配置项。 14 */ 15 #ifndef PRT_CONFIG_H 16 #define PRT_CONFIG_H 17 18 #include "prt_buildef.h" 19 #include "prt_typedef.h" 20 21 #ifdef __cplusplus 22 #if __cplusplus 23 extern "C" { 24 #endif 25 #endif 26 27 /* ***************************** 配置系统基本信息 ******************************* */ 28 /* 芯片主频 */ 29 #define OS_SYS_CLOCK 250000000 30 /* 用户注册的获取系统时间的函数*/ 31 #define OS_SYS_TIME_HOOK NULL 32 33 /* ***************************** 中断模块配置 ************************** */ 34 /* 硬中断最大支持个数 */ 35 #define OS_HWI_MAX_NUM_CONFIG 150 36 37 /* ***************************** 配置Tick中断模块 *************************** */ 38 /* Tick中断模块裁剪开关 */ 39 #define OS_INCLUDE_TICK YES 40 /* Tick中断时间间隔,tick处理时间不能超过1/OS_TICK_PER_SECOND(s) */ 41 #define OS_TICK_PER_SECOND 1000 42 43 /* ***************************** 配置定时器模块 ***************************** */ 44 /* 基于TICK的软件定时器裁剪开关 */ 45 #define OS_INCLUDE_TICK_SWTMER NO 46 /* 基于TICK的软件定时器最大个数 */ 47 #define OS_TICK_SWITIMER_MAX_NUM 32 48 49 /* ***************************** 配置任务模块 ******************************* */ 50 /* 任务模块裁剪开关 */ 51 #define OS_INCLUDE_TASK YES 52 /* 最大支持的任务数,最大共支持254个 */ 53 #define OS_TSK_MAX_SUPPORT_NUM 8 54 /* 缺省的任务栈大小 */ 55 #define OS_TSK_DEFAULT_STACK_SIZE 0x1000 56 /* IDLE任务栈的大小 */ 57 #define OS_TSK_IDLE_STACK_SIZE 0x1000 58 /* 任务栈初始化魔术字,默认是0xCA,只支持配置一个字节 */ 59 #define OS_TSK_STACK_MAGIC_WORD 0xCA 60 61 /* ***************************** 配置CPU占用率及CPU告警模块 **************** */ 62 /* CPU占用率模块裁剪开关 */ 63 #define OS_INCLUDE_CPUP NO 64 /* 采样时间间隔(单位tick),若其值大于0,则作为采样周期,否则两次调用PRT_CpupNow或PRT_CpupThread间隔作为周期 */ 65 #define OS_CPUP_SAMPLE_INTERVAL 10 66 /* CPU占用率告警动态配置项 */ 67 #define OS_CONFIG_CPUP_WARN NO 68 /* CPU占用率告警阈值(精度为万分比) */ 69 #define OS_CPUP_SHORT_WARN 8500 70 /* CPU占用率告警恢复阈值(精度为万分比) */ 71 #define OS_CPUP_SHORT_RESUME 7500 72 73 /* ***************************** 配置内存管理模块 ************************** */ 74 /* 用户可以创建的最大分区数,取值范围[0,253] */ 75 #define OS_MEM_MAX_PT_NUM 200 76 /* 私有FSC内存分区起始地址 */ 77 #define OS_MEM_FSC_PT_ADDR (uintptr_t)&g_memRegion00[0] 78 /* 私有FSC内存分区大小 */ 79 #define OS_MEM_FSC_PT_SIZE 0x80000 80 81 /* ***************************** 配置信号量管理模块 ************************* */ 82 /* 信号量模块裁剪开关 */ 83 #define OS_INCLUDE_SEM YES 84 85 /* 最大支持的信号量数 */ 86 #define OS_SEM_MAX_SUPPORT_NUM 10 87 88 /* ***************************** 配置队列模块 ******************************* */ 89 /* 队列模块裁剪开关 */ 90 #define OS_INCLUDE_QUEUE YES 91 /* 最大支持的队列数,范围(0,0xFFFF] */ 92 #define OS_QUEUE_MAX_SUPPORT_NUM 10 93 94 /* ************************* 钩子模块配置 *********************************** */ 95 /* 硬中断进入钩子最大支持个数, 范围[0, 255] */ 96 #define OS_HOOK_HWI_ENTRY_NUM 5 97 /* 硬中断退出钩子最大支持个数, 范围[0, 255] */ 98 #define OS_HOOK_HWI_EXIT_NUM 5 99 /* 任务切换钩子最大支持个数, 范围[0, 255] */ 100 #define OS_HOOK_TSK_SWITCH_NUM 8 101 /* IDLE钩子最大支持个数, 范围[0, 255] */ 102 #define OS_HOOK_IDLE_NUM 4 103 104 extern U8 g_memRegion00[]; 105 106 #ifdef __cplusplus 107 #if __cplusplus 108 } 109 #endif /* __cpluscplus */ 110 #endif /* __cpluscplus */ 111 112 #endif /* PRT_CONFIG_H */ 113