zephyr: Create options to enable frozen modules.

Enables the ability to use frozen modules in the zephyr port.

Enabled by adding `CONFIG_MICROPY_FROZEN_MODULES` to the board
configuration file.  Manually set manifest path with
`CONFIG_MICROPY_FROZEN_MANIFEST`.

Signed-off-by: Vdragon <mail@massdriver.space>
This commit is contained in:
Vdragon
2024-11-29 08:58:21 +01:00
committed by Damien George
parent f9a755c91c
commit d939511dae
3 changed files with 23 additions and 2 deletions

View File

@@ -34,6 +34,11 @@ set(MICROPY_TARGET micropython)
include(${MICROPY_DIR}/py/py.cmake)
include(${MICROPY_DIR}/extmod/extmod.cmake)
if (CONFIG_MICROPY_FROZEN_MODULES)
cmake_path(ABSOLUTE_PATH CONFIG_MICROPY_FROZEN_MANIFEST BASE_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
set(MICROPY_FROZEN_MANIFEST ${CONFIG_MICROPY_FROZEN_MANIFEST})
endif()
set(MICROPY_SOURCE_PORT
main.c
help.c
@@ -115,10 +120,11 @@ zephyr_library_compile_definitions(
zephyr_library_sources(${MICROPY_SOURCE_QSTR})
zephyr_library_link_libraries(kernel)
add_dependencies(${MICROPY_TARGET} zephyr_generated_headers)
include(${MICROPY_DIR}/py/mkrules.cmake)
add_dependencies(BUILD_VERSION_HEADER zephyr_generated_headers)
add_dependencies(${MICROPY_TARGET} zephyr_generated_headers)
target_sources(app PRIVATE
src/zephyr_start.c
src/zephyr_getchar.c

View File

@@ -41,6 +41,14 @@ config MICROPY_VFS_LFS1
config MICROPY_VFS_LFS2
bool "LittleFs version 2 file system"
config MICROPY_FROZEN_MODULES
bool "Enable Frozen Modules"
config MICROPY_FROZEN_MANIFEST
string "Path to Frozen Modules manifest.py"
depends on MICROPY_FROZEN_MODULES
default "boards/manifest.py"
endmenu # MicroPython Options
source "Kconfig.zephyr"

View File

@@ -0,0 +1,7 @@
# This is an example frozen module manifest. Enable this by configuring
# the Zephyr project and enabling the frozen modules config feature.
freeze("$(PORT_DIR)/modules")
# Require a micropython-lib module.
require("upysh")