ets.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2019 Gunar Schorcht
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
19 #ifndef ETS_H
20 #define ETS_H
21 
22 #ifndef DOXYGEN
23 
24 #include <stdarg.h>
25 #include <stddef.h>
26 #include <stdint.h>
27 
28 #include "rom/ets_sys.h"
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 /* interrupts that are not defined in rom/ets_sys.h */
35 #define ETS_WDEV_INUM 0 /* WDEV process FIQ interrupt */
36 #define ETS_RTC_INUM 3 /* RTC interrupt */
37 #define ETS_CCOM_INUM 6 /* CCOMPARE0 match interrupt */
38 #define ETS_FRC2_INUM 10 /* SDK FRC2 timer interrupt */
39 
40 /*
41  * The following functions are mappings or dummies for source code
42  * compatibility of NONOS-SDK and RTOS-SDK version
43  */
44 
45 #include "xtensa/xtensa_api.h"
46 
47 #define ets_isr_mask(x) xt_ints_off(x)
48 #define ets_isr_unmask(x) xt_ints_on(x)
49 #define ets_isr_attach(i,f,a) xt_set_interrupt_handler(i,f,a)
50 
51 #define ETS_INTR_ENABLE(inum) ets_isr_unmask((1<<inum))
52 #define ETS_INTR_DISABLE(inum) ets_isr_mask((1<<inum))
53 
54 #define _xtos_set_exception_handler(n,f) xt_set_exception_handler(n,f)
55 
56 extern uint8_t ets_get_cpu_frequency(void);
57 extern void ets_update_cpu_frequency(uint8_t);
58 
59 extern int ets_vprintf(const char *fmt, va_list ap);
60 extern int ets_printf(const char *fmt, ...);
61 extern int ets_putc(int c);
62 extern void ets_install_putc1(void (*p)(char c));
63 
64 extern void *ets_memcpy(void *dst, const void *src, size_t size);
65 
66 extern void ets_wdt_disable(void);
67 extern void ets_wdt_enable (void);
68 
69 #ifdef __cplusplus
70 }
71 #endif
72 
73 #endif /* DOXYGEN */
74 #endif /* ETS_H */