9
9
#include "freertos/queue.h"
10
10
#include "freertos/semphr.h"
11
11
#include "esp_check.h"
12
+ #include "esp_attr.h"
12
13
#include "driver/rmt_tx.h"
13
14
#include "driver/rmt_rx.h"
14
15
#include "onewire_bus_impl_rmt.h"
@@ -124,21 +125,21 @@ typedef struct {
124
125
SemaphoreHandle_t bus_mutex ;
125
126
} onewire_bus_rmt_obj_t ;
126
127
127
- const static rmt_symbol_word_t onewire_reset_pulse_symbol = {
128
+ static rmt_symbol_word_t onewire_reset_pulse_symbol = {
128
129
.level0 = 0 ,
129
130
.duration0 = ONEWIRE_RESET_PULSE_DURATION ,
130
131
.level1 = 1 ,
131
132
.duration1 = ONEWIRE_RESET_WAIT_DURATION
132
133
};
133
134
134
- const static rmt_symbol_word_t onewire_bit0_symbol = {
135
+ static rmt_symbol_word_t onewire_bit0_symbol = {
135
136
.level0 = 0 ,
136
137
.duration0 = ONEWIRE_SLOT_START_DURATION + ONEWIRE_SLOT_BIT_DURATION ,
137
138
.level1 = 1 ,
138
139
.duration1 = ONEWIRE_SLOT_RECOVERY_DURATION
139
140
};
140
141
141
- const static rmt_symbol_word_t onewire_bit1_symbol = {
142
+ static rmt_symbol_word_t onewire_bit1_symbol = {
142
143
.level0 = 0 ,
143
144
.duration0 = ONEWIRE_SLOT_START_DURATION ,
144
145
.level1 = 1 ,
@@ -163,7 +164,8 @@ static esp_err_t onewire_bus_rmt_reset(onewire_bus_handle_t bus);
163
164
static esp_err_t onewire_bus_rmt_del (onewire_bus_handle_t bus );
164
165
static esp_err_t onewire_bus_rmt_destroy (onewire_bus_rmt_obj_t * bus_rmt );
165
166
166
- static bool onewire_rmt_rx_done_callback (rmt_channel_handle_t channel , const rmt_rx_done_event_data_t * edata , void * user_data )
167
+ IRAM_ATTR
168
+ bool onewire_rmt_rx_done_callback (rmt_channel_handle_t channel , const rmt_rx_done_event_data_t * edata , void * user_data )
167
169
{
168
170
BaseType_t task_woken = pdFALSE ;
169
171
onewire_bus_rmt_obj_t * bus_rmt = (onewire_bus_rmt_obj_t * )user_data ;
@@ -312,7 +314,7 @@ esp_err_t onewire_new_bus_rmt(const onewire_bus_config_t *bus_config, const onew
312
314
ESP_GOTO_ON_ERROR (rmt_enable (bus_rmt -> tx_channel ), err , TAG , "enable rmt tx channel failed" );
313
315
314
316
// release the bus by sending a special RMT symbol
315
- static const rmt_symbol_word_t release_symbol = {
317
+ static rmt_symbol_word_t release_symbol = {
316
318
.level0 = 1 ,
317
319
.duration0 = 1 ,
318
320
.level1 = 1 ,
0 commit comments