WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
non_os.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2018-2020. All rights reserved.
3 * Description: NON OS Utils Header
4 * Author:
5 * Create:
6 */
7
8#ifndef NON_OS_H
9#define NON_OS_H
10
11#include "core.h"
12#include "memory_config.h"
13
19#define THREAD_MODE_PRIORITY 4
20
21#ifndef __return_address
22#if defined(__GNUC__)
23#define __return_address() ((uintptr_t)__builtin_return_address(0))
24#elif defined(__ICCARM__)
25#define __return_address() ((uintptr_t)__get_LR())
26#else
27#define __return_address() ((uintptr_t)0)
28#endif
29#endif
30
86
97
98cassert(DRIVER_INIT_MAX_VALUE <= 64, NON_OS_H_); //lint !e506 !e514 !e778
99
107
118
119typedef enum {
124
125#define NON_OS_NMI_CWDT_INT_FLAG BIT(NMI_CWDT)
126#define NON_OS_NMI_XIP_CTRL_INT_FLAG BIT(NMI_XIP_CTRL)
127#define NON_OS_NMI_XIP_CACHE_INT_FLAG BIT(NMI_XIP_CACHE)
128#define NON_OS_NMI_MDMA_INT_FLAG BIT(NMI_MDMA)
129#define NON_OS_NMI_SMDMAINT_FLAG BIT(NMI_SMDMA)
130#define NON_OS_BT_NMI_MASK_REG 0x59000300
131#define NON_OS_BT_NMI_STATUS_REG 0x59000304
132#define NON_OS_BNMI_BT_INT_FLAG BIT(BNMI_BT_INT)
133#define NON_OS_BNMI_BLE_INT_FLAG BIT(BNMI_BLE_INT)
134#define NON_OS_BNMI_BWDT_INT_FLAG BIT(BNMI_BWDT)
135
141typedef void(*critical_statistic_handler)(critical_statistic_mode_e mode, uint32_t address);
142
149typedef void(*critical_record_handler)(critical_statistic_mode_e mode, uint32_t address, uint16_t nestings);
150
154void non_os_enter_critical(void);
155
159void non_os_exit_critical(void);
160
166
171
178
184void non_os_set_driver_initalised(driver_init_bit_e driver, bool value);
185
193
199void non_os_set_aon_flag_initalised(aon_init_bit_e driver, bool value);
200
206
211
217
222
228void non_os_nmi_config(nmi_types_e nmi, bool on);
229
233uint16_t non_os_get_nmi_mask_status(void);
234
238uint16_t non_os_get_nmi_raw_status(void);
239
244
248const char* non_os_get_bt_rom_version(void);
249
254#if CORE == APPS
256#endif
257
261#endif
critical_statistic_mode_e
flag mark the mode if enter or exit critical when call critical statistic hook function
Definition non_os.h:103
void non_os_critical_section_init(void)
Ensures interrupts are enabled and the interrupt nested counter is reset.
Definition non_os_utils.c:178
void non_os_register_critical_statistic(critical_statistic_handler handler)
register critical statistic hook function
Definition non_os_utils.c:72
void non_os_nmi_config(nmi_types_e nmi, bool on)
Config the nmi.
Definition non_os_nmi.c:26
nmi_types_e
Definition non_os.h:108
nmi_types_e non_os_get_nmi_type(void)
get NMI mask interrupt type.
Definition non_os_nmi.c:50
void non_os_unregister_critical_statistic(void)
unregister critical statistic hook function
Definition non_os_utils.c:79
void non_os_enter_critical(void)
Enter in a critical section.
Definition non_os_utils.c:96
void(* critical_statistic_handler)(critical_statistic_mode_e mode, uint32_t address)
hook function type for crititcal interval statisitic tool
Definition non_os.h:141
bnmi_types_e
Definition non_os.h:119
AON_INIT_BIT_E
Definition non_os.h:90
void non_os_set_aon_flag_initalised(aon_init_bit_e driver, bool value)
set aon flag flag save on aon only rst when all rst(not only cpu reset)
Definition non_os_utils.c:223
uint16_t non_os_get_nmi_raw_status(void)
get NMI raw interrupt status.
Definition non_os_nmi.c:43
bool non_os_is_dcache_enabled(void)
Checks if the DCache is enabled.
uint16_t non_os_get_nmi_mask_status(void)
Get NMI interrupt status after mask.
Definition non_os_nmi.c:38
bool non_os_is_aon_flag_initialised(aon_init_bit_e driver)
check aon flag is set flag save on aon only rst when all rst(not only cpu reset)
Definition non_os_utils.c:213
driver_init_bit_e
Definition non_os.h:31
bool non_os_is_driver_initialised(driver_init_bit_e driver)
Gets the value of the drivers flag bit, then converts into a bool
Definition non_os_utils.c:190
bool non_os_is_in_critical_section(void)
Checks if the system is running on a critical section.
Definition non_os_utils.c:185
const char * non_os_get_bt_rom_version(void)
get bt rom version.
Definition non_os_utils.c:234
void non_os_register_critical_record(critical_record_handler handler)
register critical record hook function
Definition non_os_utils.c:84
void non_os_unregister_critical_record(void)
unregister critical record hook function
Definition non_os_utils.c:91
enum AON_INIT_BIT_E aon_init_bit_e
void non_os_set_driver_initalised(driver_init_bit_e driver, bool value)
Sets the value of the specified bit
Definition non_os_utils.c:195
void non_os_exit_critical(void)
Exit a critical section.
Definition non_os_utils.c:141
void(* critical_record_handler)(critical_statistic_mode_e mode, uint32_t address, uint16_t nestings)
hook function type for crititcal interval record tool
Definition non_os.h:149
@ CRITICAL_EXIT
Definition non_os.h:105
@ CRITICAL_ENTER
Definition non_os.h:104
@ NMI_NONE
Definition non_os.h:116
@ NMI_XIP_CTRL
Definition non_os.h:112
@ NMI_XIP_CACHE
Definition non_os.h:113
@ NMI_SMDMA
Definition non_os.h:115
@ NMI_CWDT
Definition non_os.h:110
@ NMI_MDMA
Definition non_os.h:114
@ NMI_BWDT
Definition non_os.h:111
@ NMI_GWDT
Definition non_os.h:109
@ BNMI_BT_INT
Definition non_os.h:120
@ BNMI_BWDT
Definition non_os.h:122
@ BNMI_BLE_INT
Definition non_os.h:121
@ AON_ROMLOADER_DOWNLOAD_KEY_MODE
Definition non_os.h:94
@ AON_FLASH_BACKUP_MODE
Definition non_os.h:95
@ AON_DEBUG_MODE
Definition non_os.h:93
@ AON_FLASH_QSPI
Definition non_os.h:91
@ AON_XIP
Definition non_os.h:92
@ DRIVER_INIT_FLASH_TO_QSPI
Definition non_os.h:81
@ DRIVER_INIT_MAX_VALUE
Definition non_os.h:84
@ DRIVER_INIT_IPC_FLASH
Definition non_os.h:39
@ DRIVER_INIT_QSPI
Definition non_os.h:44
@ DRIVER_INIT_TIMER
Definition non_os.h:35
@ DRIVER_INIT_SEC_AES
Definition non_os.h:77
@ DRIVER_INIT_PWM
Definition non_os.h:45
@ DRIVER_INIT_MEMORY
Definition non_os.h:54
@ DRIVER_INIT_WATCHDOG
Definition non_os.h:33
@ DRIVER_INIT_FLASH
Definition non_os.h:53
@ DRIVER_INIT_SEC_RSA
Definition non_os.h:78
@ DRIVER_INIT_UART
Definition non_os.h:40
@ DRIVER_INIT_GPIO
Definition non_os.h:36
@ DRIVER_INIT_RGB888
Definition non_os.h:82
@ DRIVER_INIT_RTC
Definition non_os.h:34
@ DRIVER_INIT_KV
Definition non_os.h:59
@ DRIVER_INIT_IFLASH
Definition non_os.h:51
@ DRIVER_INIT_PSRAM
Definition non_os.h:69
@ DRIVER_INIT_OTP
Definition non_os.h:55
@ DRIVER_INIT_CAP_SENSOR
Definition non_os.h:68
@ DRIVER_INIT_SEC_SHA
Definition non_os.h:76
@ DRIVER_INIT_PMU
Definition non_os.h:57
@ DRIVER_INIT_IPC_FLASH_BT
Definition non_os.h:56
@ DRIVER_INIT_IFLASH_CONFIG
Definition non_os.h:52
@ DRIVER_INIT_LPC
Definition non_os.h:42
@ DRIVER_INIT_DMA
Definition non_os.h:46
@ DRIVER_INIT_TCXO
Definition non_os.h:60
@ DRIVER_INIT_PLL
Definition non_os.h:61
@ DRIVER_INIT_SPI
Definition non_os.h:43
@ DRIVER_INIT_SEC_KEY_DRIV
Definition non_os.h:74
@ DRIVER_INIT_ADC
Definition non_os.h:48
@ DRIVER_INIT_CLOCKS_CORE
Definition non_os.h:80
@ DRIVER_INIT_SEC_TRNG1
Definition non_os.h:75
@ DRIVER_INIT_MX25U32
Definition non_os.h:73
@ DRIVER_INIT_IPC
Definition non_os.h:37
@ DRIVER_INIT_PATCH
Definition non_os.h:63
@ DRIVER_INIT_TSENSOR
Definition non_os.h:47
@ DRIVER_INTI_AP_COMMU
Definition non_os.h:64
@ DRIVER_INIT_SEC_TRNG
Definition non_os.h:62
@ DRIVER_INIT_SEC_TRNG2
Definition non_os.h:79
@ DRIVER_INIT_REBOOT
Definition non_os.h:41
@ DRIVER_INIT_I2C
Definition non_os.h:67
@ DRIVER_INIT_UICC
Definition non_os.h:83
@ DRIVER_INIT_LOG_MEMORY
Definition non_os.h:58
@ DRIVER_INIT_SYS_STATUS
Definition non_os.h:38
#define cassert(predicate, file)
Definition std_def.h:69