Skip to content

Commit 2849283

Browse files
committed
Hotfix: add missing install step of ISRs + fix ISR indexing
1 parent 03e3e70 commit 2849283

File tree

3 files changed

+90
-58
lines changed

3 files changed

+90
-58
lines changed

platforms/Arduino/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ flash:
77
arduino-cli upload -p $(PORT) --fqbn $(FQBN) Arduino.ino
88

99
compile:
10-
arduino-cli -v compile --fqbn $(FQBN) Arduino.ino
10+
arduino-cli compile --fqbn $(FQBN) Arduino.ino
1111

1212
monitor:
1313
arduino-cli monitor -p $(PORT) -c baudrate=115200

platforms/Arduino/upload.h

+52-25
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,53 @@
11
unsigned char upload_wasm[] = {
2-
0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x0d, 0x03, 0x60,
3-
0x02, 0x7f, 0x7f, 0x00, 0x60, 0x01, 0x7f, 0x00, 0x60, 0x00, 0x00, 0x02,
4-
0x3f, 0x03, 0x03, 0x65, 0x6e, 0x76, 0x0a, 0x63, 0x68, 0x69, 0x70, 0x5f,
5-
0x64, 0x65, 0x6c, 0x61, 0x79, 0x00, 0x01, 0x03, 0x65, 0x6e, 0x76, 0x0d,
6-
0x63, 0x68, 0x69, 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x6d, 0x6f, 0x64,
7-
0x65, 0x00, 0x00, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x63, 0x68, 0x69, 0x70,
8-
0x5f, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x5f, 0x77, 0x72, 0x69,
9-
0x74, 0x65, 0x00, 0x00, 0x03, 0x03, 0x02, 0x02, 0x02, 0x06, 0x10, 0x03,
10-
0x7f, 0x00, 0x41, 0x17, 0x0b, 0x7f, 0x00, 0x41, 0x01, 0x0b, 0x7f, 0x00,
11-
0x41, 0x00, 0x0b, 0x07, 0x08, 0x01, 0x04, 0x6d, 0x61, 0x69, 0x6e, 0x00,
12-
0x04, 0x0a, 0x2f, 0x02, 0x08, 0x00, 0x23, 0x00, 0x41, 0x02, 0x10, 0x01,
13-
0x0b, 0x24, 0x01, 0x01, 0x7f, 0x41, 0xe8, 0x07, 0x21, 0x00, 0x10, 0x03,
14-
0x03, 0x40, 0x23, 0x00, 0x23, 0x01, 0x10, 0x02, 0x20, 0x00, 0x10, 0x00,
15-
0x23, 0x00, 0x23, 0x02, 0x10, 0x02, 0x20, 0x00, 0x10, 0x00, 0x0c, 0x00,
16-
0x0b, 0x0b, 0x00, 0x6e, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x01, 0x49, 0x05,
17-
0x00, 0x0e, 0x65, 0x6e, 0x76, 0x2e, 0x63, 0x68, 0x69, 0x70, 0x5f, 0x64,
18-
0x65, 0x6c, 0x61, 0x79, 0x01, 0x11, 0x65, 0x6e, 0x76, 0x2e, 0x63, 0x68,
19-
0x69, 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x02,
20-
0x16, 0x65, 0x6e, 0x76, 0x2e, 0x63, 0x68, 0x69, 0x70, 0x5f, 0x64, 0x69,
21-
0x67, 0x69, 0x74, 0x61, 0x6c, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x03,
22-
0x04, 0x69, 0x6e, 0x69, 0x74, 0x04, 0x05, 0x62, 0x6c, 0x69, 0x6e, 0x6b,
23-
0x02, 0x1c, 0x05, 0x00, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01,
24-
0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x04, 0x01, 0x00,
25-
0x05, 0x64, 0x65, 0x6c, 0x61, 0x79};
26-
unsigned int upload_wasm_len = 282;
2+
0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x1c, 0x05, 0x60,
3+
0x02, 0x7f, 0x7f, 0x00, 0x60, 0x01, 0x7f, 0x01, 0x7f, 0x60, 0x03, 0x7f,
4+
0x7f, 0x7f, 0x00, 0x60, 0x05, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x60,
5+
0x00, 0x00, 0x02, 0x60, 0x04, 0x03, 0x65, 0x6e, 0x76, 0x0d, 0x63, 0x68,
6+
0x69, 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x00,
7+
0x00, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x63, 0x68, 0x69, 0x70, 0x5f, 0x64,
8+
0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65,
9+
0x00, 0x00, 0x03, 0x65, 0x6e, 0x76, 0x11, 0x63, 0x68, 0x69, 0x70, 0x5f,
10+
0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x64,
11+
0x00, 0x01, 0x03, 0x65, 0x6e, 0x76, 0x13, 0x73, 0x75, 0x62, 0x73, 0x63,
12+
0x72, 0x69, 0x62, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75,
13+
0x70, 0x74, 0x00, 0x02, 0x03, 0x07, 0x06, 0x03, 0x04, 0x00, 0x00, 0x01,
14+
0x02, 0x04, 0x05, 0x01, 0x70, 0x01, 0x02, 0x02, 0x05, 0x03, 0x01, 0x00,
15+
0x01, 0x06, 0x13, 0x03, 0x7f, 0x01, 0x41, 0x80, 0x10, 0x0b, 0x7f, 0x00,
16+
0x41, 0x80, 0x10, 0x0b, 0x7f, 0x00, 0x41, 0x80, 0x10, 0x0b, 0x07, 0x2c,
17+
0x04, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x02, 0x00, 0x04, 0x6d,
18+
0x61, 0x69, 0x6e, 0x00, 0x05, 0x0a, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61,
19+
0x5f, 0x65, 0x6e, 0x64, 0x03, 0x01, 0x0b, 0x5f, 0x5f, 0x68, 0x65, 0x61,
20+
0x70, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x03, 0x02, 0x09, 0x07, 0x01, 0x00,
21+
0x41, 0x01, 0x0b, 0x01, 0x04, 0x0a, 0x4f, 0x06, 0x0d, 0x00, 0x41, 0x1a,
22+
0x41, 0x1a, 0x10, 0x08, 0x41, 0x01, 0x47, 0x10, 0x07, 0x0b, 0x1b, 0x00,
23+
0x41, 0x19, 0x41, 0x00, 0x10, 0x06, 0x41, 0x1a, 0x41, 0x02, 0x10, 0x06,
24+
0x41, 0x19, 0x41, 0x01, 0x41, 0x02, 0x10, 0x09, 0x03, 0x40, 0x0c, 0x00,
25+
0x0b, 0x0b, 0x08, 0x00, 0x20, 0x00, 0x20, 0x01, 0x10, 0x00, 0x0b, 0x08,
26+
0x00, 0x20, 0x00, 0x20, 0x01, 0x10, 0x01, 0x0b, 0x06, 0x00, 0x20, 0x00,
27+
0x10, 0x02, 0x0b, 0x0a, 0x00, 0x20, 0x00, 0x20, 0x01, 0x20, 0x02, 0x10,
28+
0x03, 0x0b, 0x00, 0x98, 0x02, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x01, 0x76,
29+
0x0a, 0x00, 0x11, 0x65, 0x6e, 0x76, 0x2e, 0x63, 0x68, 0x69, 0x70, 0x5f,
30+
0x70, 0x69, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x01, 0x16, 0x65, 0x6e,
31+
0x76, 0x2e, 0x63, 0x68, 0x69, 0x70, 0x5f, 0x64, 0x69, 0x67, 0x69, 0x74,
32+
0x61, 0x6c, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x02, 0x15, 0x65, 0x6e,
33+
0x76, 0x2e, 0x63, 0x68, 0x69, 0x70, 0x5f, 0x64, 0x69, 0x67, 0x69, 0x74,
34+
0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x03, 0x17, 0x65, 0x6e, 0x76,
35+
0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x5f, 0x69,
36+
0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x04, 0x02, 0x66, 0x34,
37+
0x05, 0x04, 0x6d, 0x61, 0x69, 0x6e, 0x06, 0x02, 0x66, 0x36, 0x07, 0x02,
38+
0x66, 0x37, 0x08, 0x02, 0x66, 0x38, 0x09, 0x02, 0x66, 0x39, 0x02, 0x49,
39+
0x0a, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x05, 0x00,
40+
0x02, 0x70, 0x30, 0x01, 0x02, 0x70, 0x31, 0x02, 0x02, 0x70, 0x32, 0x03,
41+
0x02, 0x70, 0x33, 0x04, 0x02, 0x70, 0x34, 0x05, 0x00, 0x06, 0x02, 0x00,
42+
0x02, 0x70, 0x30, 0x01, 0x02, 0x70, 0x31, 0x07, 0x02, 0x00, 0x02, 0x70,
43+
0x30, 0x01, 0x02, 0x70, 0x31, 0x08, 0x01, 0x00, 0x02, 0x70, 0x30, 0x09,
44+
0x03, 0x00, 0x02, 0x70, 0x30, 0x01, 0x02, 0x70, 0x31, 0x02, 0x02, 0x70,
45+
0x32, 0x04, 0x15, 0x05, 0x00, 0x02, 0x74, 0x30, 0x01, 0x02, 0x74, 0x31,
46+
0x02, 0x02, 0x74, 0x32, 0x03, 0x02, 0x74, 0x33, 0x04, 0x02, 0x74, 0x34,
47+
0x05, 0x05, 0x01, 0x00, 0x02, 0x54, 0x30, 0x06, 0x09, 0x01, 0x00, 0x06,
48+
0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x07, 0x1e, 0x03, 0x00, 0x02, 0x67,
49+
0x30, 0x01, 0x0a, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x6e,
50+
0x64, 0x02, 0x0b, 0x5f, 0x5f, 0x68, 0x65, 0x61, 0x70, 0x5f, 0x62, 0x61,
51+
0x73, 0x65, 0x08, 0x05, 0x01, 0x00, 0x02, 0x65, 0x30
52+
};
53+
unsigned int upload_wasm_len = 597;

src/Primitives/arduino.cpp

+37-32
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ int isr_index = 0;
7070
dbg_info("installing isr number: %d of %d with name: %s\n", \
7171
isr_index + 1, ALL_ISRS, isr_##number); \
7272
if (isr_index < ALL_ISRS) { \
73-
ISREntry *p = &ISRs[isr_index]; \
73+
ISREntry *p = &ISRs[isr_index++]; \
7474
p->pin = number; \
7575
p->ISR_callback = &(isr_##number); \
7676
} else { \
@@ -79,8 +79,10 @@ int isr_index = 0;
7979
}
8080

8181
/* Private macro to create an ISR for a specific pin*/
82+
#define topic(pin) "interrupt_" #pin
83+
8284
#define def_isr(pin) \
83-
void isr_##pin() { CallbackHandler::push_event("interrupt_##pin", "", 0); }
85+
void isr_##pin() { CallbackHandler::push_event(#pin, "", 0); }
8486

8587
/* Common GPIO pins on ESP32 devices:*/
8688
def_isr(1);
@@ -110,10 +112,11 @@ def_isr(36);
110112
def_isr(39);
111113

112114
int resolve_isr(int pin) {
113-
debug("Resolve ISR (%d) for %s \n", ALL_ISRS, pin);
115+
debug("Resolve ISR (%d) for %i \n", ALL_ISRS, pin);
114116

115117
for (int i = 0; i < ALL_ISRS; i++) {
116118
auto &isr = ISRs[i];
119+
debug("Checking entry %i of %i: pin = %i \n", i, ALL_ISRS, isr.pin);
117120
if (pin == isr.pin) {
118121
debug("FOUND ISR\n");
119122
return i;
@@ -887,11 +890,38 @@ int32_t http_post_request(Module *m, const String url, const String body,
887890
}
888891

889892
//------------------------------------------------------
890-
// Installing all the primitives
893+
// Installing all the primitives & ISRs
891894
//------------------------------------------------------
895+
void install_isrs() {
896+
install_isr(1);
897+
install_isr(2);
898+
install_isr(3);
899+
install_isr(4);
900+
install_isr(5);
901+
install_isr(12);
902+
install_isr(13);
903+
install_isr(14);
904+
install_isr(15);
905+
install_isr(16);
906+
install_isr(17);
907+
install_isr(18);
908+
install_isr(19);
909+
install_isr(21);
910+
install_isr(22);
911+
install_isr(23);
912+
install_isr(25);
913+
install_isr(26);
914+
install_isr(27);
915+
install_isr(32);
916+
install_isr(33);
917+
install_isr(34);
918+
install_isr(35);
919+
install_isr(36);
920+
install_isr(39);
921+
}
922+
892923
void install_primitives() {
893924
dbg_info("INSTALLING PRIMITIVES\n");
894-
dbg_info("INSTALLING ARDUINO\n");
895925
install_primitive(abort);
896926
install_primitive(millis);
897927
install_primitive(micros);
@@ -939,34 +969,9 @@ void install_primitives() {
939969
install_primitive(chip_analog_write);
940970
install_primitive(chip_ledc_setup);
941971
install_primitive(chip_ledc_attach_pin);
942-
}
943972

944-
void install_isrs() {
945-
install_isr(1);
946-
install_isr(2);
947-
install_isr(3);
948-
install_isr(4);
949-
install_isr(5);
950-
install_isr(12);
951-
install_isr(13);
952-
install_isr(14);
953-
install_isr(15);
954-
install_isr(16);
955-
install_isr(17);
956-
install_isr(18);
957-
install_isr(19);
958-
install_isr(21);
959-
install_isr(22);
960-
install_isr(23);
961-
install_isr(25);
962-
install_isr(26);
963-
install_isr(27);
964-
install_isr(32);
965-
install_isr(33);
966-
install_isr(34);
967-
install_isr(35);
968-
install_isr(36);
969-
install_isr(39);
973+
dbg_info("INSTALLING ISRs\n");
974+
install_isrs();
970975
}
971976

972977
//------------------------------------------------------

0 commit comments

Comments
 (0)