Macro Yau
2a4081b079
Added support for RTC user memory in ESP-specific APIs. ( #1836 )
2016-06-01 11:13:33 +08:00
Ivan Grokhotkov
3cfad27e38
Merge pull request #2058 from dave-prosee/master
...
I2C bus reset with status info to user, re issue 1025
2016-06-01 11:09:15 +08:00
Ed Coyne
b8ae0c0792
Fixed typo
2016-05-26 15:28:29 -07:00
Ed Coyne
75bcaf01a0
Added __throw_out_of_range
2016-05-26 15:23:46 -07:00
Dave P
099f3a4147
I2C bus reset with info to user
...
I2C slave might stil have something to send when ESP826 starts I2C, thus
keeping the bus stuck.
Happens e.g. when power failure/reset during transmission.
Thanks to work of drmpf there is a solution.
Implemented as separate method so as not to interfere with existing.
Usage:
Wire.begin();
if (Wire.status() != I2C_OK) Serial.writeln("Something wrong with I2C
bus that cannot be recovered. Perform power cycle or search for other
masters on bus.";
2016-05-26 12:53:48 +02:00
Ivan Grokhotkov
5313c56f24
Add SPIFFS::end ( #1657 )
2016-05-20 10:20:04 +08:00
Ivan Grokhotkov
43fb139ed8
Add option to keep FS classes in namespace ( #2030 )
...
Putting `#define FS_NO_GLOBALS` before `#include <FS.h>` will disable `using` declarations for FS classes.
2016-05-16 11:08:33 +08:00
Ivan Grokhotkov
542b05e543
If GDBStub library is used, break into gdb on assert and panic
2016-05-10 21:30:53 +08:00
Ivan Grokhotkov
5b264af1d6
umm_malloc: print block start address before heap corruption callback is triggered
2016-05-10 21:28:17 +08:00
Ivan Grokhotkov
4c587e28bc
Fix Exception 2 when using printf or vprintf
...
ets_vprintf signature is not the same as vprintf, it takes an output function as a first argument.
2016-04-17 02:12:01 +03:00
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