Skip to content

Commit

Permalink
Merge pull request esp8266#1277 from alltheblinkythings/register_chip…
Browse files Browse the repository at this point in the history
…v6_fix

Fix RAM corruption caused by our hook of register_chipv6_phy(init_data*)
  • Loading branch information
igrr committed Dec 22, 2015
2 parents bb2d1ae + 63f1e40 commit 8caf70c
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions cores/esp8266/core_esp8266_phy.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
#include <stddef.h>
#include <stdbool.h>

static uint8_t phy_init_data[128] =
#include "c_types.h"

static const uint8_t ICACHE_FLASH_ATTR phy_init_data[128] =
{
[0] = 5, // Reserved, do not change
[1] = 0, // Reserved, do not change
Expand Down Expand Up @@ -241,9 +243,12 @@ static uint8_t phy_init_data[128] =
};

extern int __real_register_chipv6_phy(uint8_t* init_data);
extern int __wrap_register_chipv6_phy(uint8_t* unused) {
phy_init_data[107] = __get_adc_mode();
return __real_register_chipv6_phy(phy_init_data);
extern int __wrap_register_chipv6_phy(uint8_t* init_data) {
if (init_data != NULL) {
memcpy(init_data, phy_init_data, sizeof(phy_init_data));
init_data[107] = __get_adc_mode();
}
return __real_register_chipv6_phy(init_data);
}

extern int __get_rf_mode(void) __attribute__((weak));
Expand Down

0 comments on commit 8caf70c

Please sign in to comment.