-
Notifications
You must be signed in to change notification settings - Fork 51
Expand file tree
/
Copy pathrun_desktop.sh
More file actions
executable file
·70 lines (56 loc) · 2.57 KB
/
run_desktop.sh
File metadata and controls
executable file
·70 lines (56 loc) · 2.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/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 internal_filesystem/
if [ -f "$script" ]; then
"$binary" -v -i "$script"
elif [ ! -z "$script" ]; then # it's an app name
scriptdir="$script"
echo "Running app from $scriptdir"
"$binary" -X heapsize=$HEAPSIZE -v -i -c "$(cat main.py) ; import mpos.apps; mpos.apps.start_app('$scriptdir')"
else
"$binary" -X heapsize=$HEAPSIZE -v -i -c "$(cat main.py)"
fi
popd