boot.py Vs main.py
-
I'm trying to figure out a way to determine if my gpy is running boot.py or main.py. None of the online suggestions for identifying the current process like
import __main__ print(__main__.__file__) AttributeError: 'module' object has no attribute '__file__'
or
import sys this_function_name = sys._getframe( ).f_code.co_name AttributeError: 'module' object has no attribute '_getframe'
or
import sys print (sys.argv[0]) IndexError: list index out of range
work. Surely there must be a way in pycoms flavour of micropython to do this?
-
I've got identical copies of my non terminating software in boot.py & main.py, the idea being that if boot.py fails then main.py should run in lieu. But I'd like to get a diagnostic message when this happens so that's why I need a way of telling if the code is running as boot.py or main.py
-
if you do normal stuff, both files shall run. First boot than main.
You can set a local variable, a method or so, to print out for logging or to use in an if statement.
Do you still hunt your syntax error bug? If yes, try to precompile your stuff. You may use too much memory too early, so that the on device compiler fails with strange messages. Frozen files will be better for testing. Even the *.mpy files need RAM and may fail when the memory is heavy fragmented on an early stage. But testing such issues with precompiled files is quite easy compared with the frozen workflow
If you mix 4mb an lower device, develop on a smaller device and test the newer one quite often.