M.CU.M.E = Multi CompUter Machine Emulator
Link
Programmierung mit dem virtuellen Computer
cd $HOME
if [ -e "$HOME/esp" ]; then rm -rf $HOME/esp; fi
if [ -e "$HOME/.espressif" ]; then rm -rf $HOME/.espressif; fi
su
apt-get update
apt-get upgrade -y
apt-get -y install git wget flex bison gperf cmake ninja-build ccache libffi-dev libssl-dev
apt-get -y install dfu-util libncurses-dev build-essential gperf libncursesw6 libtinfo-dev pkg-config
apt-get -y install python3 python3-pip python-is-python3 build-essential libncurses5-dev libncursesw5-dev
apt -y install python3-venv
apt -y install python3-virtualenv
apt update
apt -y install software-properties-common
echo "" | add-apt-repository ppa:deadsnakes/ppa
apt update
apt -y install python3.9 python3.9-venv
exit
python3.9 -m venv venv
source $HOME/venv/bin/activate
python -m pip install --upgrade pip setuptools
# Kontrolle
which python
which pip
python --version
# Outoput
# /home/user/venv/bin/python
# /home/user/venv/bin/pip
# Python 3.9.x
deactivate
MCUME Download
cd $HOME
mkdir -p $HOME/esp
cd $HOME/esp
git clone https://github.com/Jean-MarcHarvengt/espMCUME.git
idf Download
mkdir -p $HOME/esp
cd $HOME/esp
# git tag
# git clone -b v5.5 --recursive https://github.com/espressif/esp-idf.git
git clone -b v3.3.6 --recursive https://github.com/espressif/esp-idf.git
# git clone -b v4.4.8 --recursive https://github.com/espressif/esp-idf.git
# git clone -b v2.1 --recursive https://github.com/espressif/esp-idf.git
# git clone -b v3.0 --recursive https://github.com/espressif/esp-idf.git
# cd $HOME/esp/esp-idf
# git tag
cd $HOME/esp/esp-idf
python3.9 tools/idf_tools.py install-python-env
python3.9 tools/idf_tools.py install
source $HOME/venv/bin/activate
export PYTHON=$(which python3.9)
export IDF_PYTHON_ENV_PATH=$HOME/.espressif/python_env/idf3.3_py3.9_env
export PATH="$IDF_PYTHON_ENV_PATH/bin:$PATH"
source $HOME/esp/esp-idf/export.sh
cd $HOME/esp/esp-idf
./install.sh
. ./export.sh
idf.py --help
MCUME kompilieren
sed -e "s/cc -x c - -o/cc -std=gnu89 -x c - -o/g" -i $HOME/esp/esp-idf/tools/kconfig/lxdialog/check-lxdialog.sh
sed -i 's/^COMPONENTS := .*$/COMPONENTS := esptool_py bootloader_support efuse log spi_flash micro-ecc soc main/' $HOME/esp/espMCUME/espboot/components/bootloader/subproject/Makefile
cd $HOME/esp/espMCUME/espboot/components/bootloader/subproject/main
if [ -e "esp32.bootloader.ld" ]; then echo "OK"; else cp -v esp32.bootloader.ld esp32.bootloader.ld.pre336.bak; fi
cp -v $HOME/esp/esp-idf/components/bootloader/subproject/main/esp32.bootloader.ld esp32.bootloader.ld
sed -i 's/^cryptography>=2\.1\.4,<35$/cryptography>=2.1.4/; s/^pyparsing>=2\.0\.3,<2\.4\.0$/pyparsing>=2.0.3/' "$IDF_PATH/requirements.txt"
cd $HOME/esp/espMCUME/espboot
sed -e "/LibFC14/d" -i main/component.mk
sed -e "/delete-non-virtual-dtor/d" -i main/component.mk
echo "# LibFC14/ liegt unter main/ und ist nicht im Komponenten-Suchpfad -> explizit bauen" >>main/component.mk
echo "COMPONENT_SRCDIRS := . LibFC14" >>main/component.mk
echo "COMPONENT_ADD_INCLUDEDIRS := . LibFC14" >>main/component.mk
echo "CPPFLAGS += -Wno-error=delete-non-virtual-dtor" >>main/component.mk
cd $HOME/esp/espMCUME/espboot
export GNUMAKEFLAGS=""
export IDF_PATH=$HOME/esp/esp-idf
export PATH="$HOME/.espressif/tools/xtensa-esp32-elf/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/bin:$PATH"
make
# make flash
# cd $HOME/esp/espMCUME/esp64
# make
# bash flashapp.sh
ToDo
... todo ...
Notizen