Parcourir la source

build system: Add 'make monitor' target from arduino-esp32

Originally added to arduino-esp32 by @me-no-dev. It's so useful, we
want it in esp-idf as well! :)
Angus Gratton il y a 9 ans
Parent
commit
03551ec2da

+ 10 - 0
README.md

@@ -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.
 
+# 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
 
 After the initial flash, you may just want to build and flash just your app, not the bootloader and partition table:

+ 40 - 0
components/esptool_py/Kconfig.projbuild

@@ -178,4 +178,44 @@ config ESPTOOLPY_AFTER
     default "hard_reset" if ESPTOOLPY_AFTER_RESET
     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

+ 8 - 0
components/esptool_py/Makefile.projbuild

@@ -67,4 +67,12 @@ erase_flash:
 	@echo "Erasing entire 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

+ 1 - 0
make/project.mk

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