Skip to content

Commit b791c00

Browse files
committed
Merge branch 'Links2004-esp8266' into esp8266
2 parents 4cc06c2 + 021ca19 commit b791c00

8 files changed

+102
-7
lines changed

.gitignore

+7
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,10 @@ build/windows/launcher/launch4j
4949
build/windows/WinAVR-*.zip
5050
hardware/arduino/avr/libraries/Bridge/examples/XivelyClient/passwords.h
5151
avr-toolchain-*.zip
52+
/hardware/tools/esp8266/utils/
53+
/hardware/tools/esp8266/xtensa-lx106-elf
54+
/hardware/tools/esp8266/esptool.exe
55+
/hardware/tools/avr/
56+
/hardware/tools/gcc-arm-none-eabi-4.8.3-2014q1/
57+
/hardware/tools/bossac.exe
58+
/hardware/tools/listComPorts.exe

cores/esp8266/Arduino.h

+1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ void yield(void);
4646
#define INPUT 0x0
4747
#define OUTPUT 0x1
4848
#define INPUT_PULLUP 0x2
49+
#define INPUT_PULLDOWN 0x3
4950
#define OUTPUT_OPEN_DRAIN 0x4
5051

5152
#define PI 3.1415926535897932384626433832795

cores/esp8266/Esp.cpp

+42-4
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ extern "C" {
2424
#include "user_interface.h"
2525
}
2626

27-
extern "C" void ets_wdt_enable (void);
28-
extern "C" void ets_wdt_disable (void);
29-
extern "C" void wdt_feed (void);
27+
28+
//extern "C" void ets_wdt_init(uint32_t val);
29+
extern "C" void ets_wdt_enable(void);
30+
extern "C" void ets_wdt_disable(void);
31+
extern "C" void wdt_feed(void);
3032

3133
EspClass ESP;
3234

@@ -35,11 +37,17 @@ EspClass::EspClass()
3537

3638
}
3739

38-
void EspClass::wdtEnable(int)
40+
void EspClass::wdtEnable(uint32_t timeout_ms)
3941
{
42+
//todo find doku for ets_wdt_init may set the timeout
4043
ets_wdt_enable();
4144
}
4245

46+
void EspClass::wdtEnable(WDTO_t timeout_ms)
47+
{
48+
wdtEnable((uint32_t) timeout_ms);
49+
}
50+
4351
void EspClass::wdtDisable(void)
4452
{
4553
ets_wdt_disable();
@@ -70,3 +78,33 @@ uint16_t EspClass::getVCC(void)
7078
{
7179
return system_get_vdd33();
7280
}
81+
82+
uint32_t EspClass::getFreeHeap(void)
83+
{
84+
return system_get_free_heap_size();
85+
}
86+
87+
uint32_t EspClass::getChipId(void)
88+
{
89+
return system_get_chip_id();
90+
}
91+
92+
const char * EspClass::getSDKversion(void)
93+
{
94+
return system_get_sdk_version();
95+
}
96+
97+
uint8_t EspClass::getBootVersion(void)
98+
{
99+
return system_get_boot_version();
100+
}
101+
102+
uint8_t EspClass::getBootMode(void)
103+
{
104+
return system_get_boot_mode();
105+
}
106+
107+
uint8_t EspClass::getCPUfreqMHz(void)
108+
{
109+
return system_get_cpu_freq();
110+
}

cores/esp8266/Esp.h

+34-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,27 @@
2020

2121
#ifndef ESP_H
2222
#define ESP_H
23+
/**
24+
* AVR macros for WDT managment
25+
*/
26+
typedef enum {
27+
WDTO_0MS = 0, //!< WDTO_0MS
28+
WDTO_15MS = 15, //!< WDTO_15MS
29+
WDTO_30MS = 30, //!< WDTO_30MS
30+
WDTO_60MS = 60, //!< WDTO_60MS
31+
WDTO_120MS = 120, //!< WDTO_120MS
32+
WDTO_250MS = 250, //!< WDTO_250MS
33+
WDTO_500MS = 500, //!< WDTO_500MS
34+
WDTO_1S = 1000,//!< WDTO_1S
35+
WDTO_2S = 2000,//!< WDTO_2S
36+
WDTO_4S = 4000,//!< WDTO_4S
37+
WDTO_8S = 8000 //!< WDTO_8S
38+
} WDTO_t;
39+
2340

41+
#define wdt_enable(time) ESP.wdtEnable(time)
42+
#define wdt_disable() ESP.wdtDisable()
43+
#define wdt_reset() ESP.wdtFeed()
2444

2545
enum WakeMode {
2646
WAKE_RF_DEFAULT = 0, // RF_CAL or not after deep-sleep wake up, depends on init data byte 108.
@@ -33,8 +53,10 @@ class EspClass {
3353
public:
3454
EspClass();
3555

36-
void wdtEnable(int timeout_ms = 0);
3756
// TODO: figure out how to set WDT timeout
57+
void wdtEnable(uint32_t timeout_ms = 0);
58+
void wdtEnable(WDTO_t timeout_ms = WDTO_0MS);
59+
3860
void wdtDisable(void);
3961
void wdtFeed(void);
4062

@@ -44,6 +66,17 @@ class EspClass {
4466
void reset(void);
4567
void restart(void);
4668
uint16_t getVCC(void);
69+
uint32_t getFreeHeap(void);
70+
71+
uint32_t getChipId(void);
72+
73+
const char * getSDKversion(void);
74+
75+
uint8_t getBootVersion(void);
76+
uint8_t getBootMode(void);
77+
78+
uint8_t getCPUfreqMHz(void);
79+
4780
};
4881

4982
extern EspClass ESP;

cores/esp8266/HardwareSerial.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ void ICACHE_FLASH_ATTR uart1_write_char(char c) {
453453
}
454454
}
455455

456-
static UARTnr_t s_uart_debug_nr = UART_NO;
456+
static UARTnr_t s_uart_debug_nr = UART0;
457457
void ICACHE_FLASH_ATTR uart_set_debug(UARTnr_t uart_nr) {
458458
s_uart_debug_nr = uart_nr;
459459
switch(s_uart_debug_nr) {

cores/esp8266/core_esp8266_wiring_digital.c

+5
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,12 @@ extern void __pinMode(uint8_t pin, uint8_t mode) {
8181
PIN_PULLUP_DIS(mux);
8282
} else if(mode == INPUT_PULLUP) {
8383
gpio_output_set(0, 0, 0, 1 << pin);
84+
PIN_PULLDWN_DIS(mux);
8485
PIN_PULLUP_EN(mux);
86+
} else if(mode == INPUT_PULLDOWN) {
87+
gpio_output_set(0, 0, 0, 1 << pin);
88+
PIN_PULLUP_DIS(mux);
89+
PIN_PULLDWN_EN(mux);
8590
} else if(mode == OUTPUT) {
8691
gpio_output_set(0, 0, 1 << pin, 0);
8792
} else if(mode == OUTPUT_OPEN_DRAIN) {

cores/esp8266/libc_replacements.c

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
#include <math.h>
3030
#include <limits.h>
3131
#include <errno.h>
32+
#include <string.h>
3233

3334
#include "ets_sys.h"
3435
#include "os_type.h"

cores/esp8266/pgmspace.h

+11-1
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,24 @@
11
#ifndef __PGMSPACE_H_
22
#define __PGMSPACE_H_
33

4+
#ifdef __cplusplus
5+
extern "C" {
6+
#endif
47
#include <stdint.h>
8+
#include <stdio.h>
9+
#include "ets_sys.h"
10+
#include "osapi.h"
11+
#ifdef __cplusplus
12+
}
13+
#endif
514

615
#define PROGMEM
716
#define PGM_P const char *
817
#define PSTR(str) (str)
918

10-
#define vsnprintf_P(...) vsnprintf( __VA_ARGS__ )
19+
#define vsnprintf_P(...) ets_vsnprintf( __VA_ARGS__ )
1120
#define snprintf_P(...) snprintf( __VA_ARGS__ )
21+
#define printf_P(...) os_printf(__VA_ARGS__)
1222

1323
#define _SFR_BYTE(n) (n)
1424

0 commit comments

Comments
 (0)