Ivan Grokhotkov
2e849e30d2
Merge pull request #1768 from esp8266/pulsein_fix
...
Fix pulseIn
2016-03-30 21:10:06 +03:00
Ivan Grokhotkov
29186ecb7d
Merge pull request #1832 from esp8266/sdk-1.5.2
...
Update SDK to 1.5.2 (#1653 )
2016-03-30 21:07:37 +03:00
Ivan Grokhotkov
05c078ba5b
Don't set RF mode on boot unless it was overridden
...
The change in 297bb17 enabled RF after deep sleep, even if deep sleep was done with RF_DISABLED option (thanks @vlast3k for pointing this out).
Now we check the value returned by __get_rf_mode, and only call system_phy_set_rfoption if RF_MODE override was provided by user.
2016-03-30 08:47:50 +03:00
Ivan Grokhotkov
477e9cfb8a
Update SDK to 1.5.2 ( #1653 )
...
patch included: http://bbs.espressif.com/viewtopic.php?f=46&t=1856
2016-03-29 17:24:37 +03:00
Baruch Even
91cc6ff4f9
Avoid multiple instances of INADDR_NONE
...
By moving the definition from the header to the source we now only use
one instance for the entire app with a little saving in space.
2016-03-24 09:47:02 +02:00
Ivan Grokhotkov
3d3c928e2e
Enable heap poisoning only when debug options are enabled ( #1800 )
2016-03-24 01:34:25 +03:00
Ivan Grokhotkov
5227b32531
Accept both named constant and ADC channel number in analogRead ( #1766 )
2016-03-16 12:34:51 +03:00
Ivan Grokhotkov
32c6176e24
Fix pulseIn ( #1072 , #1149 )
...
- fix return value on timeout
- add optimistic_yield to allow WiFi/network tasks to run
- use ccount instead of micros (which causes an integer division on every call)
2016-03-14 00:28:09 +03:00
Ivan Grokhotkov
652703ef41
Move micros, delayMicroseconds, millis to IRAM ( #1326 )
2016-03-13 23:00:53 +03:00
Ivan Grokhotkov
297bb17c53
Fix RF_MODE override
...
__get_rf_mode was declared but was not used
2016-03-13 22:42:51 +03:00
Ivan Grokhotkov
730764075e
Declare __get_adc_mode and __get_rf_mode with C++ linkage
...
Workaround for #1759 . Using extern "C" qualifiers in sketch breaks compilation in Arduino IDE 1.6.8.
2016-03-13 22:35:18 +03:00
Uri Shaked
748f3f93fa
Fix crashes when using tone()
...
Mark `t1IntHandler()` with ICACHE_RAM_ATTR
2016-03-12 19:21:32 +02:00
Uri Shaked
4b55ee14ef
Allow indefinite duration for tone()
...
Bugfix: the `duration` parameter should be optional, per [`tone()`](https://www.arduino.cc/en/Reference/Tone ) docs.
2016-03-12 17:42:30 +02:00
Ivan Grokhotkov
d49024cfdf
Implement strstr_P, add pgmspace tests ( #1749 )
2016-03-11 09:47:49 +03:00
Ivan Grokhotkov
0a320b9fb5
Revert "Update interrupts to be masked when accessing flash ( #1388 )"
...
This reverts commit 6c37fee7a189371401e384834ab98ec1da226ff8.
2016-03-11 08:45:39 +03:00
Ivan Grokhotkov
6c37fee7a1
Update interrupts to be masked when accessing flash ( #1388 )
2016-03-10 14:13:09 +03:00
Ivan Grokhotkov
6b0a117e3d
Move attachInterrupt and detachInterrupt into IRAM ( #1734 )
2016-03-10 13:44:56 +03:00
Ivan Grokhotkov
6a7551e1f0
Update SPIFFS to 82aeac6
...
Fixes duplicate files issue (#1685 )
2016-03-10 13:00:38 +03:00
Markus Sattler
f8f0001e69
fix umm_malloc null ptr.
...
(endless reboot) like:
```
Fatal exception (28):
epc1=0x402097e8, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000001, depc=0x00000000
Fatal exception (28):
epc1=0x402097e8, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000001, depc=0x00000000
Fatal exception (28):
epc1=0x402097e8, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000001, depc=0x00000000
```
```
0x402097e8: umm_info at umm_malloc/umm_malloc.c line 1000
```
2016-03-08 18:31:14 +01:00
Ivan Grokhotkov
1f32b7f66e
Clean up core files
...
- remove ICACHE_FLASH_ATTR
- remove unneeded SDK includes
- split spiffs_api into .h and .cpp
2016-03-03 02:13:22 +03:00
Raheel Hameed
2d77eae599
Leverage realloc() in String::changeBuffer()
2016-02-28 02:50:48 -06:00
Ivan Grokhotkov
214d8bc8b8
Improve clearing GPIO interrupt state (thanks @me-no-dev)
2016-02-27 11:16:30 +03:00
Ivan Grokhotkov
87a7f8e954
Merge pull request #1668 from raheelh/patch-1
...
Fix a crash in String::changeBuffer()
2016-02-27 01:51:05 +03:00
Ivan Grokhotkov
d891704c1e
Reduce stack usage by Print::printf
...
Print::printf would allocate 1460 bytes on the stack, which in some cases would overflow the stack. Additionally it didn't handle (rare) cases when vsnprintf needed a buffer longer than 1460 bytes. This change makes default stack-allocated buffer 64 bytes long, and checks the result returned by vsnprintf. If a buffer longer than 64 bytes is needed, it is allocated on the heap.
2016-02-26 18:41:27 +03:00
raheelh
fdf8599aaa
Fix a crash in String::changeBuffer()
...
Calling String::reserve() causes a crash if String object was in invalidated state. Per the comment on the method's declaration in ESP_SSD1306.h, This method was supposed to recover invalidated strings. This change fixes the edge case bug in String::changeBuffer() which is the root cause of the crash exposed from String::reserve().
Following test code was used to reproduce the problem and also to validate the fix:
String result;
while(true){
char c = 'A';
result += c; // the loop will cause malloc() to fail at some point.
if (result.c_str()==0)
{
Serial.println("String INVALIDATED!!!!!");
result.reserve(0); // before fix, this would crash.
Serial.println("Trying to empty....");
result="";
Serial.println("Emptied!!!!");
break;
}
}
2016-02-22 22:57:21 -06:00
Markus Sattler
28e6f33142
not keep freed pointer of uart handler
2016-02-22 18:24:10 +01:00
Ivan Grokhotkov
103b5811be
Fix error when umm_malloc.h is included from sketch ( #1652 )
2016-02-19 14:17:09 +03:00
Markus Sattler
127f05da9f
Merge remote-tracking branch 'remotes/esp8266/master'
2016-02-17 23:47:14 +01:00
Markus Sattler
652f88eb5c
update core_esp8266_features.h
2016-02-17 23:46:20 +01:00
Ivan Grokhotkov
707c87fdb6
Move umm_info into cache
2016-02-17 11:42:52 +03:00
Ivan Grokhotkov
30b2a99b3f
Remove mem_manager.o from libmain.a ( #1630 )
2016-02-15 00:24:19 +03:00
Ivan Grokhotkov
4c75793508
Fix undefined reference to putchar
2016-02-14 22:16:46 +03:00
Ivan Grokhotkov
1fc8918d76
Remove printf redefinition from umm_malloc_cfg ( #1629 )
2016-02-13 13:29:58 +03:00
Ivan Grokhotkov
0659b80260
Merge pull request #1586 from esp8266/cxa_guard
...
Static initialization guards implementation
2016-02-13 13:26:12 +03:00
Ivan Grokhotkov
93c446e782
Merge pull request #1581 from bjpirt/tone
...
Implementation of Tone library using timer1
2016-02-13 13:25:52 +03:00
Charles
e3bf9bb1e8
Added bit mask and constant for SerialConfig parameter
...
Permit use bit config avoiding test/compare all "hard-coded" values.
example
```arduino
if (section & CFG_HLP_MODBUS) {
DebuglnF("\r\n===== Modbus");
DebugF("Speed : "); Debug(config.modbus.baud);
switch (config.modbus.proto & UART_NB_BIT_MASK) {
case UART_NB_BIT_5: Debug(" 5"); break;
case UART_NB_BIT_6: Debug(" 6"); break;
case UART_NB_BIT_7: Debug(" 7"); break;
case UART_NB_BIT_8: Debug(" 8"); break;
default : Debug(" ?"); break;
}
switch (config.modbus.proto & UART_PARITY_MASK) {
case UART_PARITY_NONE: Debug("N"); break;
case UART_PARITY_EVEN: Debug("E"); break;
case UART_PARITY_ODD : Debug("O"); break;
default : Debug("?"); break;
}
switch (config.modbus.proto & UART_NB_STOP_BIT_MASK) {
case UART_NB_STOP_BIT_0: Debug("0"); break;
case UART_NB_STOP_BIT_1: Debug("1"); break;
case UART_NB_STOP_BIT_15: Debug("15"); break;
case UART_NB_STOP_BIT_2 : Debug("2"); break;
default : Debug("?"); break;
}
DebugF("\r\nSlave Addr : "); Debugln(config.modbus.slave);
DebugF("Holding Reg : 0x"); Debugln2(config.modbus.hr_addr,HEX);
DebugF("Enable Pin : "); Debugln(config.modbus.en_pin);
}
```
2016-02-11 17:47:49 +01:00
Ivan Grokhotkov
737f6c28ea
Remove forced alignment in operators new and delete
...
This alignment prevents umm_malloc to detect buffer overruns which fall within padding introduced by new/new[]. Allocated memory will be aligned by design of umm_malloc, so we don't need to pad anything here.
Also fixed some formatting/newlines and removed unused header files.
2016-02-06 02:06:56 +03:00
Ivan Grokhotkov
6fc141772c
Implement static initialization guards ( #500 )
2016-02-06 02:06:56 +03:00
Ben Pirt
7beda37da1
Implementation of Tone API using timer1
2016-02-05 12:03:29 +00:00
Ivan Grokhotkov
3e42042b86
Fix warning in libc_replacements.c
2016-02-04 20:02:47 +03:00
Ivan Grokhotkov
3b2ea52d23
Merge pull request #1563 from mvdbro/master
...
Configurable I2C clock stretching limit
2016-02-04 17:46:27 +03:00
Ivan Grokhotkov
5e8be46e84
Merge pull request #1552 from andig/spiffs
...
Change %i to %d for ets_printf compatibility
2016-02-04 17:39:09 +03:00
Ivan Grokhotkov
339140c756
Use umm_malloc for heap management
2016-02-04 13:14:47 +03:00
Ivan Grokhotkov
2e1be32825
Fix undefined reference to os_free ( #1522 )
2016-02-04 01:24:38 +03:00
mvdbro
3f15903566
Configurable I2C clock stretching limit
...
Use Wire.setClockStretchLimit(limit)
limit is in uSeconds
2016-02-03 17:05:04 +01:00
andig
1d5d1c18c6
Change %i to %d for ets_printf compatibility
2016-02-02 09:26:27 +01:00
Ivan Grokhotkov
8a26750e63
Merge pull request #1544 from andig/md5
...
Fix buffer overflow and formatting
2016-01-31 22:40:05 +03:00
andig
77ab33f7bf
Fix buffer overflow and formatting
2016-01-31 18:49:02 +01:00
Markus Sattler
bf067f718a
make random more random
2016-01-29 13:17:10 +01:00
Ivan Grokhotkov
d1149c53e6
Remove UART register reference from HardwareSerial
2016-01-26 22:58:00 +03:00