Merge branch 'feature/make_monitor' into 'master'

Add 'make monitor' target as used in arduino-esp32



See merge request !355
This commit is contained in:
Angus Gratton 2017-01-03 08:43:49 +08:00
commit 19fa6e254d
4 changed files with 69 additions and 0 deletions

View File

@ -36,6 +36,16 @@ This will flash the entire project (app, bootloader and partition table) to a ne
You don't need to run `make all` before running `make flash`, `make flash` will automatically rebuild anything which needs it. You don't need to run `make all` before running `make flash`, `make flash` will automatically rebuild anything which needs it.
# Viewing Serial Output
The `make monitor` target will use the already-installed [miniterm](http://pyserial.readthedocs.io/en/latest/tools.html#module-serial.tools.miniterm) (a part of pyserial) to display serial output from the ESP32 on the terminal console.
Exit miniterm by typing Ctrl-].
To flash and monitor output in one pass, you can run:
`make flash monitor`
# Compiling & Flashing Just the App # Compiling & Flashing Just the App
After the initial flash, you may just want to build and flash just your app, not the bootloader and partition table: After the initial flash, you may just want to build and flash just your app, not the bootloader and partition table:
@ -47,6 +57,16 @@ After the initial flash, you may just want to build and flash just your app, not
(There's no downside to reflashing the bootloader and partition table each time, if they haven't changed.) (There's no downside to reflashing the bootloader and partition table each time, if they haven't changed.)
# Parallel Builds
esp-idf supports compiling multiple files in parallel, so all of the above commands can be run as `make -jN` where `N` is the number of parallel make processes to run (generally N should be equal to or one more than the number of CPU cores in your system.)
Multiple make functions can be combined into one. For example: to build the app & bootloader using 5 jobs in parallel, then flash everything, and then display serial output from the ESP32 run:
```
make -j5 flash monitor
```
# The Partition Table # The Partition Table
Once you've compiled your project, the "build" directory will contain a binary file with a name like "my_app.bin". This is an ESP32 image binary that can be loaded by the bootloader. Once you've compiled your project, the "build" directory will contain a binary file with a name like "my_app.bin". This is an ESP32 image binary that can be loaded by the bootloader.

View File

@ -178,4 +178,44 @@ config ESPTOOLPY_AFTER
default "hard_reset" if ESPTOOLPY_AFTER_RESET default "hard_reset" if ESPTOOLPY_AFTER_RESET
default "no_reset" if ESPTOOLPY_AFTER_NORESET default "no_reset" if ESPTOOLPY_AFTER_NORESET
choice MONITOR_BAUD
prompt "'make monitor' baud rate"
default MONITOR_BAUD_115200B
help
Baud rate to use when running 'make monitor' to view serial output
from a running chip.
Can override by setting the MONITORBAUD environment variable.
config MONITOR_BAUD_9600B
bool "9600 bps"
config MONITOR_BAUD_57600B
bool "57600 bps"
config MONITOR_BAUD_115200B
bool "115200 bps"
config MONITOR_BAUD_230400B
bool "230400 bps"
config MONITOR_BAUD_921600B
bool "921600 bps"
config MONITOR_BAUD_2MB
bool "2 Mbps"
config MONITOR_BAUD_OTHER
bool "Custom baud rate"
endchoice
config MONITOR_BAUD_OTHER_VAL
int "Custom baud rate value" if MONITOR_BAUD_OTHER
default 115200
config MONITOR_BAUD
int
default 9600 if MONITOR_BAUD_9600B
default 57600 if MONITOR_BAUD_57600B
default 115200 if MONITOR_BAUD_115200B
default 230400 if MONITOR_BAUD_230400B
default 921600 if MONITOR_BAUD_921600B
default 2000000 if MONITOR_BAUD_2MB
default MONITOR_BAUD_OTHER_VAL if MONITOR_BAUD_OTHER
endmenu endmenu

View File

@ -67,4 +67,12 @@ erase_flash:
@echo "Erasing entire flash..." @echo "Erasing entire flash..."
$(ESPTOOLPY_SERIAL) erase_flash $(ESPTOOLPY_SERIAL) erase_flash
MONITORBAUD ?= $(CONFIG_MONITOR_BAUD)
# note: if you want to run miniterm from command line, can simply run
# miniterm.py on the console. The '$(PYTHON) -m serial.tools.miniterm'
# is to allow for the $(PYTHON) variable overriding the python path.
monitor: $(call prereq_if_explicit,%flash)
$(PYTHON) -m serial.tools.miniterm --rts 0 --dtr 0 --raw $(ESPPORT) $(MONITORBAUD)
.PHONY: erase_flash .PHONY: erase_flash

View File

@ -30,6 +30,7 @@ help:
@echo "make clean - Remove all build output" @echo "make clean - Remove all build output"
@echo "make size - Display the memory footprint of the app" @echo "make size - Display the memory footprint of the app"
@echo "make erase_flash - Erase entire flash contents" @echo "make erase_flash - Erase entire flash contents"
@echo "make monitor - Display serial output on terminal console"
@echo "" @echo ""
@echo "make app - Build just the app" @echo "make app - Build just the app"
@echo "make app-flash - Flash just the app" @echo "make app-flash - Flash just the app"