mirror of
https://github.com/esp8266/Arduino.git
synced 2025-04-25 20:02:37 +03:00
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.
This commit is contained in:
parent
9d4208ef3b
commit
730764075e
@ -55,7 +55,8 @@ enum RFMode {
|
|||||||
RF_DISABLED = 4 // disable RF after deep-sleep wake up, just like modem sleep, there will be the smallest current.
|
RF_DISABLED = 4 // disable RF after deep-sleep wake up, just like modem sleep, there will be the smallest current.
|
||||||
};
|
};
|
||||||
|
|
||||||
#define RF_MODE(mode) extern "C" int __get_rf_mode() { return mode; }
|
#define RF_MODE(mode) int __get_rf_mode() { return mode; }
|
||||||
|
#define RF_PRE_INIT() void __run_user_rf_pre_init()
|
||||||
|
|
||||||
// compatibility definitions
|
// compatibility definitions
|
||||||
#define WakeMode RFMode
|
#define WakeMode RFMode
|
||||||
@ -71,7 +72,7 @@ enum ADCMode {
|
|||||||
ADC_VDD = 255
|
ADC_VDD = 255
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ADC_MODE(mode) extern "C" int __get_adc_mode(void) { return (int) (mode); }
|
#define ADC_MODE(mode) int __get_adc_mode(void) { return (int) (mode); }
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
FM_QIO = 0x00,
|
FM_QIO = 0x00,
|
||||||
|
@ -242,6 +242,14 @@ static const uint8_t ICACHE_FLASH_ATTR phy_init_data[128] =
|
|||||||
[114] = 2
|
[114] = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// These functions will be overriden from C++ code.
|
||||||
|
// Unfortunately, we can't use extern "C" because Arduino preprocessor
|
||||||
|
// doesn't generate forward declarations for extern "C" functions correctly,
|
||||||
|
// so we use mangled names here.
|
||||||
|
#define __get_adc_mode _Z14__get_adc_modev
|
||||||
|
#define __get_rf_mode _Z13__get_rf_modev
|
||||||
|
#define __run_user_rf_pre_init _Z22__run_user_rf_pre_initv
|
||||||
|
|
||||||
extern int __real_register_chipv6_phy(uint8_t* init_data);
|
extern int __real_register_chipv6_phy(uint8_t* init_data);
|
||||||
extern int __wrap_register_chipv6_phy(uint8_t* init_data) {
|
extern int __wrap_register_chipv6_phy(uint8_t* init_data) {
|
||||||
if (init_data != NULL) {
|
if (init_data != NULL) {
|
||||||
|
11
tests/test_overrides/test_overrides.ino
Normal file
11
tests/test_overrides/test_overrides.ino
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
ADC_MODE(ADC_VCC);
|
||||||
|
RF_MODE(RF_DISABLED);
|
||||||
|
RF_PRE_INIT()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user