diff options
| author | Alessandro Gatti <a.gatti@frob.it> | 2025-09-24 22:26:39 +0200 |
|---|---|---|
| committer | Alessandro Gatti <a.gatti@frob.it> | 2025-10-24 19:13:15 +0200 |
| commit | 430837996b3cbb85849be92cc4d9ce98ce2a0905 (patch) | |
| tree | c4415e18addffddd03e774cfb914e651b9beb7e1 /docs/reference/mpyfiles.rst | |
| parent | 3e2b41f8f60d39226320aad93ed3490d5add1799 (diff) | |
py/modsys: Add architecture flags to MicroPython metadata.
This commit adds the currently supported architecture flags value as the
upper part of "sys.implementation._mpy".
This had the side effect of perturbing quite a bit of testing
infrastructure and invalidating documentation related to MPY files. To
make the test suite run successfully and keep the documentation in sync
the following changes have been made:
* The target info feature check file now isolates eventual architecture
flags and adds them as a separate field
* The test runner now picks up the new architecture flags field, reports
it to STDOUT if needed and stores it for future uses
* Relevant test files for MPY files import code had to be updated to
mask out the architecture flags bits in order to perform correctly
* MPY file format documentation was updated to show how to mask off and
properly display the architecture flags information.
This works out of the box if the flag bits can fit in a smallint value
once merged with the MPY file header value.
Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
Diffstat (limited to 'docs/reference/mpyfiles.rst')
| -rw-r--r-- | docs/reference/mpyfiles.rst | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/docs/reference/mpyfiles.rst b/docs/reference/mpyfiles.rst index 9687f5e46..58e45e158 100644 --- a/docs/reference/mpyfiles.rst +++ b/docs/reference/mpyfiles.rst @@ -58,12 +58,14 @@ If importing an .mpy file fails then try the following: sys_mpy = sys.implementation._mpy arch = [None, 'x86', 'x64', 'armv6', 'armv6m', 'armv7m', 'armv7em', 'armv7emsp', 'armv7emdp', - 'xtensa', 'xtensawin', 'rv32imc', 'rv64imc'][sys_mpy >> 10] + 'xtensa', 'xtensawin', 'rv32imc', 'rv64imc'][(sys_mpy >> 10) & 0x0F] print('mpy version:', sys_mpy & 0xff) print('mpy sub-version:', sys_mpy >> 8 & 3) print('mpy flags:', end='') if arch: print(' -march=' + arch, end='') + if (sys_mpy >> 16) != 0: + print(' -march-flags=' + (sys_mpy >> 16), end='') print() * Check the validity of the .mpy file by inspecting the first two bytes of |
