Select one of the symbols to view example projects that use it.
 
Outline
#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>
#include "soc/soc_caps.h"
#include "esp_rom_caps.h"
#include "esp_rom_uart.h"
#include "rom/ets_sys.h"
#include "sdkconfig.h"
_putc1
_putc2
esp_rom_output_to_channels(char)
esp_rom_install_channel_putc(int, void (*)(char))
esp_rom_set_cpu_ticks_per_us(uint32_t)
Files
loading (4/5)...
SourceVuESP-IDF Framework and ExamplesESP-IDFcomponents/esp_rom/patches/esp_rom_sys.c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* * SPDX-FileCopyrightText: 2010-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 *//* ... */ #include <stdint.h> #include <stdbool.h> #include <stddef.h> #include "soc/soc_caps.h" #include "esp_rom_caps.h" #include "esp_rom_uart.h" #include "rom/ets_sys.h" #include "sdkconfig.h"8 includes #if !ESP_ROM_HAS_OUTPUT_PUTC_FUNC void esp_rom_output_putc(char c) { if (c == '\n') { esp_rom_output_tx_one_char('\r'); esp_rom_output_tx_one_char('\n'); }{...} else if (c == '\r') { }{...} else { esp_rom_output_tx_one_char(c); }{...} }{...} /* ... */#endif // !ESP_ROM_HAS_OUTPUT_PUTC_FUNC #if !ESP_ROM_HAS_OUTPUT_TO_CHANNELS_FUNC void (* _putc1)(char c) = esp_rom_output_putc; void (* _putc2)(char c) = NULL; void esp_rom_output_to_channels(char c) { if (_putc1) { _putc1(c); }{...} if (_putc2) { _putc2(c); }{...} }{ ... } #endif/* ... */ // !ESP_ROM_HAS_OUTPUT_TO_CHANNELS_FUNC void esp_rom_install_channel_putc(int channel, void (*putc)(char c)) { switch (channel) { case 1: #if !ESP_ROM_HAS_OUTPUT_TO_CHANNELS_FUNC _putc1 = putc; #endif #if !CONFIG_IDF_TARGET_LINUX ets_install_putc1(putc); #endif break;... case 2: #if !ESP_ROM_HAS_OUTPUT_TO_CHANNELS_FUNC _putc2 = putc; #endif #if !CONFIG_IDF_TARGET_LINUX ets_install_putc2(putc); #endif break;... default: break;... }{...} }{ ... } #if ESP_ROM_HAS_ETS_PRINTF_BUG void esp_rom_install_uart_printf(void) { #if !ESP_ROM_HAS_OUTPUT_TO_CHANNELS_FUNC _putc1 = esp_rom_output_putc; #endif #if !CONFIG_IDF_TARGET_LINUX extern void ets_install_uart_printf(void); extern bool g_uart_print; extern bool g_usb_print; // If ROM log is disabled permanently via eFuse or temporarily via RTC storage register, // this ROM symbol will be set to false, and cause ``esp_rom_printf`` can't work on esp-idf side. g_uart_print = true; g_usb_print = true; ets_install_uart_printf();/* ... */ #endif // !CONFIG_IDF_TARGET_LINUX }{...} /* ... */#endif #if CONFIG_IDF_TARGET_ESP32 extern uint32_t g_ticks_per_us_pro; #if SOC_CPU_CORES_NUM > 1 #ifndef CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE extern uint32_t g_ticks_per_us_app; #endif/* ... */ #endif void esp_rom_set_cpu_ticks_per_us(uint32_t ticks_per_us) { /* Update scale factors used by esp_rom_delay_us */ g_ticks_per_us_pro = ticks_per_us; #if SOC_CPU_CORES_NUM > 1 #ifndef CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE g_ticks_per_us_app = ticks_per_us; #endif/* ... */ #endif }{ ... } #endif/* ... */ // CONFIG_IDF_TARGET_ESP32
Details