Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
esp32
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bitsoko services
esp32
Commits
4d3f93b8
Commit
4d3f93b8
authored
Jun 02, 2017
by
omwansafelix
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updated buildESP32.sh to harmonize project operations into a single process
parent
176fa119
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
143 additions
and
95 deletions
+143
-95
buildESP32.sh
buildESP32.sh
+143
-95
No files found.
buildESP32.sh
View file @
4d3f93b8
## Author: Elliot Williams
## Author: Elliot Williams
## Modified by : Alois Mbutura and Felix Omwansa
## Modified by : Alois Mbutura and Felix Omwansa
echo
""
build_framework
()
{
echo
"[
$0
]: This script builds the entire development framework, the first of only two steps of building custom projects for the ESP32."
echo
""
echo
"[
$0
]: This builds the development framework for the ESP32, and set required variables."
echo
"[
$0
]: NOTE: You should run this script from within the destination directory."
## Install the esp-idf and set required variables
## BASE variable-This is where you want the entire toolchain to live
## You should run this script from within the destination directory, or redefine the BASE variable to fit your lifestyle.
#The script here is derived from: http://esp-idf.readthedocs.io/en/latest/linux-setup.html
## Install the esp-idf and set required variables
## BASE variable-This is where you want the entire toolchain to live
#The script here is derived from: http://esp-idf.readthedocs.io/en/latest/linux-setup.html
BASE
=
$(
pwd
)
BASE
=
$(
pwd
)
echo
""
echo
""
echo
"[
$0
]: Checking for system prerequisites."
echo
"[
$0
]: Checking for system prerequisites."
#Archlinux
#Archlinux
if
[
$(
which pacman
)
]
if
[
$(
which pacman
)
]
then
then
echo
"[
$0
]: Found archlinux based system."
echo
"[
$0
]: Found archlinux based system."
sudo
pacman
-S
--needed
gcc git make ncurses flex bison gperf python2-pyserial wget 2>/dev/null
sudo
pacman
-S
--needed
gcc git make ncurses flex bison gperf python2-pyserial wget 2>/dev/null
fi
fi
#Ubuntu
#Ubuntu
if
[
$(
which apt-get
)
]
if
[
$(
which apt-get
)
]
then
then
echo
"[
$0
]: Found Ubuntu based system."
echo
"[
$0
]: Found Ubuntu based system."
sudo
apt-get update
sudo
apt-get update
sudo
apt-get
install
git make libncurses-dev flex bison gperf python python-serial wget 2>/dev/null
sudo
apt-get
install
git make libncurses-dev flex bison gperf python python-serial wget 2>/dev/null
fi
fi
#Any other system goes here
#Any other system goes here
# Get or update IDF
# Get or update IDF
echo
""
echo
""
echo
"[
$0
]: Get or update IDF"
echo
"[
$0
]: Get or update IDF"
if
[
-d
esp-idf
]
if
[
-d
esp-idf
]
then
then
echo
"[
$0
]: Found esp-idf, updating."
echo
"[
$0
]: Found esp-idf, updating."
cd
esp-idf
cd
esp-idf
git pull
&&
git submodule update
--recursive
git pull
&&
git submodule update
--recursive
cd
$BASE
cd
$BASE
else
## not found, get it
else
## not found, get it
git clone
--recursive
https://github.com/espressif/esp-idf.git
git clone
--recursive
https://github.com/espressif/esp-idf.git
fi
fi
## Perform mandatory removal of any tar files in case of a previous error
## Perform mandatory removal of any tar files in case of a previous error
if
[
-f
*
.tar.gz
]
||
[
-f
*
.tar.gz.
*
]
if
[
-f
*
.tar.gz
]
||
[
-f
*
.tar.gz.
*
]
then
then
echo
""
echo
""
echo
"[
$0
]: Removing residual tar file(s)"
echo
"[
$0
]: Removing residual tar file(s)"
rm
*
.tar.gz 2>/dev/null
rm
*
.tar.gz 2>/dev/null
rm
*
.tar.gz.
*
2>/dev/null
rm
*
.tar.gz.
*
2>/dev/null
fi
fi
## Get 64 bit linux binary toolchain -- this might get out of date when they change blobs:
## Get 64 bit linux binary toolchain -- this might get out of date when they change blobs:
## Current version 1.22.0-61-gab8375a-5.2.0
## Current version 1.22.0-61-gab8375a-5.2.0
echo
""
echo
""
echo
"[
$0
]: Get 64 bit linux binary toolchain -- this might get out of date when they change blobs"
echo
"[
$0
]: Get 64 bit linux binary toolchain -- this might get out of date when they change blobs"
if
[
-d
xtensa-esp32-elf
]
if
[
-d
xtensa-esp32-elf
]
then
then
echo
"[
$0
]: Found ESP32 binary toolchain. Performing mandatory replacement."
echo
"[
$0
]: Found ESP32 binary toolchain. Performing mandatory replacement."
echo
"[
$0
]: Current version at the making of this makefile 1.22.0-61-gab8375a-5.2.0"
echo
"[
$0
]: Current version at the making of this makefile 1.22.0-61-gab8375a-5.2.0"
echo
"[
$0
]: Check current version from http://esp-idf.readthedocs.io/en/latest/linux-setup.html"
echo
"[
$0
]: Check current version from http://esp-idf.readthedocs.io/en/latest/linux-setup.html"
rm
-rf
xtensa-esp32-elf
rm
-rf
xtensa-esp32-elf
wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
tar
-xvzf
xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
tar
-xvzf
xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
# rm *.tar.gz 2>/dev/null && rm *.tar.gz.* 2>/dev/null
# rm *.tar.gz 2>/dev/null && rm *.tar.gz.* 2>/dev/null
else
else
wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
tar
-xvzf
xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
tar
-xvzf
xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
rm
*
.tar.gz 2>/dev/null
&&
rm
*
.tar.gz.
*
2>/dev/null
rm
*
.tar.gz 2>/dev/null
&&
rm
*
.tar.gz.
*
2>/dev/null
fi
fi
## Setup environment variables:
echo
""
echo
"[
$0
]: Setup environment variables"
echo
"[
$0
]: Exporting environment variables:"
export
IDF_PATH
=
${
BASE
}
/esp-idf
echo
"[
$0
]: export IDF_PATH=
${
BASE
}
/esp-idf"
export
PATH
=
$PATH
:
${
BASE
}
/xtensa-esp32-elf/bin
echo
"[
$0
]: export PATH=
$PATH
:
${
BASE
}
/xtensa-esp32-elf/bin"
}
build_app
(){
echo
""
echo
"[
$0
]: This compiles and flashes the project into the ESP32."
echo
"[
$0
]: NOTE: You should run this function from the working directory."
## No need for demo application
##move the project and builder to the source code directory
mkdir
narra
mv
ble_app_eddystone narra
## Setup environment variables:
##After source code is available the commands to complete project building go here
echo
""
echo
"[
$0
]: Setup environment variables"
echo
"[
$0
]: Exporting environment variables:"
export
IDF_PATH
=
${
BASE
}
/esp-idf
echo
"[
$0
]: export IDF_PATH=
${
BASE
}
/esp-idf"
export
PATH
=
$PATH
:
${
BASE
}
/xtensa-esp32-elf/bin
echo
"[
$0
]: export PATH=
$PATH
:
${
BASE
}
/xtensa-esp32-elf/bin"
##move the project and builder to the source code directory
cd
narra/ble_app_eddystone
mkdir
narra
mv
buildApp.sh narra
mv
ble_app_eddystone narra
##After source code is available the commands to complete project building go here
#compiling and flashing project binaries
##Allow read and write access to USB device
echo
""
echo
"[
$0
]: Setup access to USB device: the ESP"
sudo chmod
a+rw /dev/ttyUSB0
cd
narra
##configure project
echo
""
echo
"[
$0
]: Run configuration menu"
make menuconfig
#Build instruction
s
##erase and flash current project to ESP and run serial monitor to view result
s
echo
""
echo
""
echo
"[
$0
]: Project build instructions
"
echo
"[
$0
]: Erase everything on device then flash the current project
"
echo
"[
$0
]: Run '. buildApp.sh' in the project directory to build and flash project to the ESP32"
make erase_flash flash monitor
##upon project completion the buildApp script can be run automatically from here
}
build_flash
(){
#building development framework and flash project in one operation
build_framework
build_app
}
####################################
#Build instructions
echo
""
echo
"[
$0
]: PROJECT BUILD INSTRUCTIONS"
echo
"Bitsoko ESP32 script initialized. What would you like to do?"
echo
""
echo
"[
$0
]: 1. Run 'build_framework' to build the development framework for ESP32 in the working directory."
echo
"[
$0
]: 2. Run 'build_app' to compile and flash the project in the working directory into the ESP32."
echo
"[
$0
]: 3. Run 'build_flash' to development framework and flash project in one operation."
echo
"[
$0
]: 4. Run 'quit' to quit."
read
action
if
[
$action
=
build_framework
]
then
build_framework
exit
elif
[
$action
=
build_app
]
then
build_app
exit
elif
[
$action
=
build_flash
]
then
build_flash
exit
elif
[
$action
=
quit
]
then
exit
fi
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment