You've already forked MicroPythonOS
mirror of
https://github.com/m5stack/MicroPythonOS.git
synced 2026-05-20 11:51:27 -07:00
5587e457a9
Script would not be able to start in dark mode, config.json was backed up but never used. config.json is not backed up anymore, change if this is needed still. We overwrite the auto_start_app if we launch it with a specific app.
78 lines
2.8 KiB
Bash
Executable File
78 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
scriptdir=$(readlink -f "$0")
|
|
scriptdir=$(dirname "$scriptdir")
|
|
script="$1"
|
|
if [ -f "$script" ]; then
|
|
script=$(readlink -f "$script")
|
|
fi
|
|
|
|
echo "Usage:"
|
|
echo "$0 # with no arguments just starts it up normally"
|
|
echo "$0 scriptfile.py # doesn't initialize anything, just runs scriptfile.py directly"
|
|
echo "$0 appname # starts the app by appname, for example: com.example.helloworld"
|
|
|
|
#export SDL_WINDOW_FULLSCREEN=true
|
|
|
|
export HEAPSIZE=8M # default, same a PSRAM on many ESP32-S3 boards
|
|
#export HEAPSIZE=9M # 9MB is not enough for slides, 10MB is okay for 5, 16 for 10, 64 for 100s
|
|
#export HEAPSIZE=10M # 9MB is not enough for slides, 10MB is okay for 5, 16 for 10, 64 for 100s
|
|
#export HEAPSIZE=11M # 9MB is not enough for slides, 10MB is okay for 5, 16 for 10, 64 for 100s
|
|
#export HEAPSIZE=12M # 9MB is not enough for slides, 10MB is okay for 5, 16 for 10, 64 for 100s
|
|
#export HEAPSIZE=13M # 9MB is not enough for slides, 10MB is okay for 5, 16 for 10, 64 for 100s
|
|
#export HEAPSIZE=14M # 9MB is not enough for slides, 10MB is okay for 5, 16 for 10, 64 for 100s
|
|
#export HEAPSIZE=15M # 9MB is not enough for slides, 10MB is okay for 5, 15 ok for all
|
|
|
|
# 15 works infinite with 8 images
|
|
# 12 seems to work fine with all images now, doing only gc.collect()
|
|
# 10-11 works infinite with 7 images but as soon as I add the next one (big PNG slide 2) it hangs memory alloc
|
|
|
|
# Makes semse because the error is:
|
|
# MemoryError: memory allocation failed, allocating 2518043 bytes
|
|
# So every new slide needs 2.5MB extra RAM!
|
|
|
|
# Fixed by adding lv.image.cache_drop(None) # This helps a lot!
|
|
|
|
# Now it works with 10M with infinite slides!
|
|
|
|
# Now not anymore... let's try increasing it.
|
|
#export HEAPSIZE=20M # this is fine for 1024x576
|
|
#export HEAPSIZE=15M # fine too
|
|
|
|
#export HEAPSIZE=32M # for 1280x720 images in the image viewer
|
|
#export HEAPSIZE=128M # for 1280x720 images in the image viewer
|
|
|
|
# print os and set binary
|
|
os_name=$(uname -s)
|
|
if [ "$os_name" = "Darwin" ]; then
|
|
echo "Running on macOS"
|
|
binary="$scriptdir"/../lvgl_micropython/build/lvgl_micropy_macOS
|
|
else
|
|
# other cases can be added here
|
|
echo "Running on $os_name"
|
|
binary="$scriptdir"/../lvgl_micropython/build/lvgl_micropy_unix
|
|
fi
|
|
|
|
binary=$(readlink -f "$binary")
|
|
chmod +x "$binary"
|
|
|
|
pushd "$scriptdir"/../internal_filesystem/
|
|
|
|
if [ -f "$script" ]; then
|
|
echo "Running script $script"
|
|
"$binary" -v -i "$script"
|
|
else
|
|
echo "Running app $script"
|
|
CONFIG_FILE="data/com.micropythonos.settings/config.json"
|
|
# Check if config.json exists
|
|
if [ -f "$CONFIG_FILE" ]; then
|
|
# Update the auto_start_app field using sed
|
|
sed -i '' -e 's/"auto_start_app": ".*"/"auto_start_app": "'$script'"/' "$CONFIG_FILE"
|
|
else
|
|
# If config.json doesn't exist, create it with auto_start_app
|
|
echo '{"auto_start_app": "'$script'"}' > "$CONFIG_FILE"
|
|
fi
|
|
"$binary" -X heapsize=$HEAPSIZE -v -i -c "$(cat main.py)"
|
|
fi
|
|
|
|
popd
|