@@ -172,11 +172,11 @@ extern "C" {
172
172
ETS_GPIO_INTR_ATTACH (interrupt_handler, &interrupt_reg);
173
173
}
174
174
175
- inline void isr_iram_assertion (uint32_t userFunc)
175
+ inline void isr_iram_assertion (voidFuncPtrArg userFunc)
176
176
{
177
177
// #5780
178
178
// https://github.com/esp8266/esp8266-wiki/wiki/Memory-Map
179
- if (userFunc >= 0x40200000 )
179
+ if (( uint32_t ) userFunc >= 0x40200000 )
180
180
{
181
181
// ISR not in IRAM
182
182
::printf ((PGM_P)F(" ISR not in IRAM!\r\n " ));
@@ -187,8 +187,7 @@ extern "C" {
187
187
188
188
extern void __attachInterruptArg (uint8_t pin, voidFuncPtrArg const userFunc, void * const arg, int mode)
189
189
{
190
- isr_iram_assertion ((uint32_t )userFunc);
191
- attachInterrupt (pin, { userFunc, arg }, mode);
190
+ attachInterrupt (pin, { userFunc, arg }, mode);
192
191
}
193
192
194
193
extern void __attachInterrupt (uint8_t pin, voidFuncPtr userFunc, int mode)
@@ -254,6 +253,7 @@ namespace
254
253
255
254
extern void attachInterrupt (uint8_t pin, Delegate<void (), void*> userFunc, int mode)
256
255
{
256
+ isr_iram_assertion (userFunc);
257
257
if (pin < 16 )
258
258
{
259
259
ETS_GPIO_INTR_DISABLE ();
0 commit comments