From 3af87e1c42ece2a36773520daa06612888cb9e29 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Sun, 28 May 2017 11:04:59 -0400 Subject: [PATCH] avr: Add SIMULAVR build option; don't show WATCHDOG or SERIAL_BAUD_U2X Add a CONFIG_SIMULAVR option to the Kbuild menus and don't directly prompt users for CONFIG_WATCHDOG or CONFIG_SERIAL_BAUD_U2X. The only reason to disable these options would be if one were running on simulavr. This simplifies the user visible menu options. Also, only show CONFIG_CLEAR_PRESCALER for at90usb1286 chips. Signed-off-by: Kevin O'Connor --- docs/Debugging.md | 8 ++++---- src/avr/Kconfig | 20 +++++++++++++++++--- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/docs/Debugging.md b/docs/Debugging.md index 51f1ac53..da0fba16 100644 --- a/docs/Debugging.md +++ b/docs/Debugging.md @@ -75,10 +75,10 @@ cd /patch/to/klipper make menuconfig ``` -and compile the micro-controller software for an AVR atmega644p, -disable the AVR watchdog timer, and set the MCU frequency -to 20000000. Then one can compile Klipper (run `make`) and then start -the simulation with: +and compile the micro-controller software for an AVR atmega644p, set +the MCU frequency to 20Mhz, and select SIMULAVR software emulation +support. Then one can compile Klipper (run `make`) and then start the +simulation with: ``` PYTHONPATH=/path/to/simulavr/src/python/ ./scripts/avrsim.py -m atmega644 -s 20000000 -b 250000 out/klipper.elf diff --git a/src/avr/Kconfig b/src/avr/Kconfig index 766d6823..0b71156b 100644 --- a/src/avr/Kconfig +++ b/src/avr/Kconfig @@ -58,6 +58,7 @@ config CLOCK_FREQ config CLEAR_PRESCALER bool "Manually clear the CPU prescaler field at startup" + depends on MACH_at90usb1286 default n help Some AVR chips ship with a "clock prescaler" that causes the @@ -76,7 +77,8 @@ config AVR_STACK_SIZE default 128 config AVR_WATCHDOG - bool "Support for automated reset on watchdog timeout" + bool + depends on !SIMULAVR default y config AVR_USBSERIAL bool @@ -91,8 +93,20 @@ config SERIAL_BAUD int "Baud rate for serial port" default 250000 config SERIAL_BAUD_U2X - depends on AVR_SERIAL - bool "Use AVR Baud 2X mode" + depends on AVR_SERIAL && !SIMULAVR + bool default y +config SIMULAVR + depends on MACH_atmega168 || MACH_atmega328 || MACH_atmega644p + bool "Compile for simulavr software emulation" + default n + help + Compile the code to run on simulavr software emulation + instead of for real hardware. This disables support for "U2X + baud" mode and for the watchdog timer which are not supported + on simulavr. + + If unsure, select "N". + endif