Thanks again for this really great project and I'm looking forward to using and adding to it.
Pardon my getting started with OVMS & esp-idf, I suspect I have an issue with my setup in terms of the path being correctly defined?
I attempted to follow the google docs OVMS developer guide, but I must be missing something.
The developer guide and the esp-idf instructions seem clear until the esp-idf instructions to run the install.sh script (setting paths, etc), but this script or similar doesn't exist in the openvehicles esp-idf branch? And the openvehicles esp-idf is a few months old, many items from the master esp-idf are different now? does that matter?
Do the instructions mean to install and set up the espressif's master esp-idf, and then also clone the openvehicles esp-idf? Because I think that's what I've done.
I installed the dependencies and espressif's esp-idf, and am able to flash at least hello_world on a regular esp32 board over USB and the serial terminal works with it. So that seems good.
When I try to compile OVMS I get errors that look like I'm missing something. Maybe the something I'm missing is in the openvehicles esp-idf, but my paths are not including it? Is there a script in the openvehicles esp-idf that I need to run? Is it ok to have both versions of esp-idf set up at the same time?
First it gives errors about the copyright text to include in the binary?
dklein@___:~/Leaf/OVMS/v3/vehicle/OVMS.V3$ make
Toolchain path: /home/dklein/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Toolchain version: esp-2019r2
Compiler version: 8.2.0
Python requirements from /home/dklein/esp/esp-idf/requirements.txt are satisfied.
App "ovms3" version: 3.2.008-15-gca307f88
CC /homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/build/app_update/esp_app_desc.o
AR /homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/build/app_update/libapp_update.a
CC /homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/build/console/argtable3/argtable3.o
/homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/components/console/argtable3/argtable3.c: In function 'trex_charnode':
/homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/components/console/argtable3/argtable3.c:3068:7: warning: this statement ma
y fall through [-Wimplicit-fallthrough=]
if(!isclass) {
^
/homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/components/console/argtable3/argtable3.c:3074:4: note: here
default:
^~~~~~~
At top level:
/homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/components/console/argtable3/argtable3.c:273:19: error: 'rcsid' defined but
not used [-Werror=unused-const-variable=]
static const char rcsid[]="$Id: getopt_long.c,v 1.1 2009/10/16 19:50:28 rodney Exp rodney $";
^~~~~
/homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/components/console/argtable3/argtable3.c: In function 'trex_compile':
/homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/components/console/argtable3/argtable3.c:3466:8: warning: variable 'exp' mi
ght be clobbered by 'longjmp' or 'vfork' [-Wclobbered]
TRex *exp = (TRex *)malloc(sizeof(TRex));
^~~
cc1: some warnings being treated as errors
/home/dklein/esp/esp-idf/make/component_wrapper.mk:291: recipe for target 'argtable3/argtable3.o' failed
make[1]: *** [argtable3/argtable3.o] Error 1
/home/dklein/esp/esp-idf/make/project.mk:610: recipe for target 'component-console-build' failed
make: *** [component-console-build] Error 2
dklein@___:~/Leaf/OVMS/v3/vehicle/OVMS.V3$
If I eliminate that error, comment out the lines in argtable3,
#ifndef lint
static const char rcsid[]="$Id: getopt_long.c,v 1.1 2009/10/16 19:50:28 rodney Exp rodney $";
#endif /* lint */
Then I get same & other warnings, and finally a 'No rule to make target'.
dklein@___:~/Leaf/OVMS/v3/vehicle/OVMS.V3$ make
Toolchain path: /home/dklein/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Toolchain version: esp-2019r2
Compiler version: 8.2.0
Python requirements from /home/dklein/esp/esp-idf/requirements.txt are satisfied.
App "ovms3" version: 3.2.008-15-gca307f88-dirty
CC /homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/build/app_update/esp_app_desc.o
AR /homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/build/app_update/libapp_update.a
CC /homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/build/console/argtable3/argtable3.o
/homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/components/console/argtable3/argtable3.c: In function 'trex_charnode':
/homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/components/console/argtable3/argtable3.c:3068:7: warning: this statement ma
y fall through [-Wimplicit-fallthrough=]
if(!isclass) {
^
/homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/components/console/argtable3/argtable3.c:3074:4: note: here
default:
^~~~~~~
/homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/components/console/argtable3/argtable3.c: In function 'trex_compile':
/homez/dklein/Documents/Projects/Leaf/OVMS/v3/vehicle/OVMS.V3/components/console/argtable3/argtable3.c:3466:8: warning: variable 'exp' mi
ght be clobbered by 'longjmp' or 'vfork' [-Wclobbered]
TRex *exp = (TRex *)malloc(sizeof(TRex));
^~~
make[1]: *** No rule to make target '/homez/dklein/Documents/Projects/vehicles/OVMS/v3/vehicle/OVMS.V3/components/console/split_argv.c',
needed by 'split_argv.o'. Stop.
/home/dklein/esp/esp-idf/make/project.mk:610: recipe for target 'component-console-build' failed
make: *** [component-console-build] Error 2
dklein@___:~/Leaf/OVMS/v3/vehicle/OVMS.V3$
in my .bashrc
# added 12/13/19, dklein, add ESP-IDF tools to path
. "$HOME/esp/esp-idf/export.sh"
which adds to the path as follows.
Adding ESP-IDF tools to PATH...
Checking if Python packages are up to date...
Python requirements from /home/dklein/esp/esp-idf/requirements.txt are satisfied.
Added the following directories to PATH:
/home/dklein/esp/esp-idf/components/esptool_py/esptool
/home/dklein/esp/esp-idf/components/espcoredump
/home/dklein/esp/esp-idf/components/partition_table/
/home/dklein/.espressif/tools/xtensa-esp32-elf/esp-2019r2-8.2.0/xtensa-esp32-elf/bin
/home/dklein/.espressif/tools/xtensa-esp32s2-elf/esp-2019r2-8.2.0/xtensa-esp32s2-elf/bin
/home/dklein/.espressif/tools/esp32ulp-elf/2.28.51.20170517/esp32ulp-elf-binutils/bin
/home/dklein/.espressif/tools/openocd-esp32/v0.10.0-esp32-20190708/openocd-esp32/bin
/home/dklein/.espressif/python_env/idf4.1_py2.7_env/bin
/home/dklein/esp/esp-idf/tools
Done! You can now compile ESP-IDF projects.
Go to the project directory and run:
idf.py build
Thanks! Dale