Fatal Exception 28

sedlacek.david
Posts: 10
Joined: Thu Jul 12, 2018 2:06 pm

Fatal Exception 28

Postby sedlacek.david » Sat Jul 21, 2018 8:29 pm

Hi, I managed to get SOME result with NON OS SDK, but it basically don't work as expected. Have ESP8266, 4MB of flash, NON OS sdk 2.2.1.

Here is the error output I'm getting:

Code: Select all

ets Jan  8 2013,rst cause:2, boot mode:(3,6)
                                                                               
load 0x3ffe8000, len 884, room 16             
tail 4                                                         
chksum 0x9d
load 0x3ffe8380, len 808, room 4                                 
tail 4                           
chksum 0xa1                       
load 0x40100000, len 24688, room 4           
tail 12                     
chksum 0x8f                               
csum 0x8f                                       
rf_cal[0] !=0x05,is 0xFF               
rf cal sector: 1019                                 
freq trace enable 1                               
rf[112] : ff                                     
rf[113] : ff                                           
rf[114] : ff                                       
w_flash
                                                 
SDK ver: 2.2.1(6ab97e9) compiled @ Jun  7 2018 13:59:14
phy ver: 3125_15, pp ver: 250.31
                                                                               
compile time:Jul 21 2018 14:16:49
                                             
mode : softAP(5e:cf:7f:a4:54:1a)
add if1             
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
         
[b]Fatal exception 28(LoadProhibitedCause):
epc1=0x40101bbe, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000004, depc=0x0
0000000[/b]



According to my linker output .map file, there is phy_change_channel() at the address 0x40101bb4


This is my code:

Code: Select all

void ICACHE_FLASH_ATTR
[b]user_init[/b](void)
{
    char buf[128] = { 0 };
    os_printf("compile time:%s %s\r\n", __DATE__, __TIME__);
    system_init_done_cb(sdk_init_done_cb);
}
void ICACHE_FLASH_ATTR
[b]sdk_init_done_cb[/b](void) {
    os_printf("test");
    system_soft_wdt_feed();


My linker was missing two functions, so I've put it into my code, but I believe this is not correct. But wasn't able to find any documentation related to them.

Code: Select all

void ICACHE_FLASH_ATTR [b]__wrap_system_restart_local[/b]()
{
}

void ICACHE_FLASH_ATTR [b]__wrap_register_chipv6_phy[/b]()
{   
}

What can be possibly wrong? I'm struggling with it for several days :)))))))

One more thing - if I flash the RF cal sector (which wasn't flashed in the case above) it won't show basically anything.

Who is online

Users browsing this forum: No registered users and 1 guest