-
Notifications
You must be signed in to change notification settings - Fork 535
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixed WiFi Manual Connection Crash LoadStoreErrorCause #345
base: master
Are you sure you want to change the base?
Conversation
When exactly does this problem occur? |
This problem happens on manual wifi_station_connect. P.S. Without having source files from libnet80211 this is only one simple way to fix an error |
Occasionally, I get a LoadProhibited in libphy, but never after wifi_station_connect. I can do wifi_station_connect all day long and nothing bad happens. |
Because libmain.a setup exception handlers to ignore this kind of fatal errors, as result returns 0 value on read. I'm using custom exception interrupts on my projects. |
Ok, thanks. I had trouble compiling (section did not fit). Then I used ar to move the .o file you mentioned from libnet to libphy. The stuff in there has to be in RAM anyway. So no touching of the linker files required. Compile was fine and according to nm there are now three new functions in RAM: ieee80211_phy_init, ieee80211_setup_ratetable and ieee80211_phy_type_get. The bin starts, connects und runs ok for hours now. Heap usage is ok. Let's see what happens. |
Do you know whether the lastest update fixes this problem? libnet80211 was changed and the comment mentions "ratetable". |
According to libnet80211 disassembly:
Data objects still sits in wrong place .irom.text |
Thanks much for the quick reply! |
libnet80211.a has wrong data placing in section .irom.text, which causes a critical error LoadStoreErrorCause, followed by a exception restart. This fix forces the linker to place data to the DRAM memory and completely eliminates the problem of starting WiFi in manual mode