stepper: Support disabling optimized "step on both edges" in "make menuconfig"
Add a new "low level option" to allow users to configure if they want to optimize for Trinamic drivers or traditional stepper motor drivers. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
8faed8d9fe
commit
825d4baf90
31
src/Kconfig
31
src/Kconfig
@ -201,6 +201,29 @@ config CANBUS_FILTER
|
|||||||
bool
|
bool
|
||||||
default y if CANSERIAL
|
default y if CANSERIAL
|
||||||
|
|
||||||
|
# Stepper optimizations
|
||||||
|
config INLINE_STEPPER_HACK
|
||||||
|
# Enables gcc to inline stepper_event() into the main timer irq handler
|
||||||
|
bool
|
||||||
|
depends on HAVE_GPIO
|
||||||
|
default y
|
||||||
|
config HAVE_STEPPER_OPTIMIZED_BOTH_EDGE
|
||||||
|
bool
|
||||||
|
config WANT_STEPPER_OPTIMIZED_BOTH_EDGE
|
||||||
|
bool "Optimize stepper code for 'step on both edges'" if LOW_LEVEL_OPTIONS
|
||||||
|
depends on INLINE_STEPPER_HACK && HAVE_STEPPER_OPTIMIZED_BOTH_EDGE
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Optimize the stepper code for Trinamic stepper motor drivers
|
||||||
|
that are configured in UART or SPI mode (and thus can perform
|
||||||
|
a step on both "edges" of the step pin). Enabling this option
|
||||||
|
typically improves the stepper cpu performance by about 20%
|
||||||
|
when using these drivers. If this option is disabled the code
|
||||||
|
will instead deploy optimizations that improve the cpu
|
||||||
|
performance by about 20% for traditional drivers (those that
|
||||||
|
take a step only on the "rising" or "falling" level of the
|
||||||
|
step pin).
|
||||||
|
|
||||||
# Support setting gpio state at startup
|
# Support setting gpio state at startup
|
||||||
config INITIAL_PINS
|
config INITIAL_PINS
|
||||||
string "GPIO pins to set at micro-controller startup"
|
string "GPIO pins to set at micro-controller startup"
|
||||||
@ -229,15 +252,7 @@ config HAVE_STRICT_TIMING
|
|||||||
bool
|
bool
|
||||||
config HAVE_CHIPID
|
config HAVE_CHIPID
|
||||||
bool
|
bool
|
||||||
config HAVE_STEPPER_OPTIMIZED_BOTH_EDGE
|
|
||||||
bool
|
|
||||||
config HAVE_BOOTLOADER_REQUEST
|
config HAVE_BOOTLOADER_REQUEST
|
||||||
bool
|
bool
|
||||||
config HAVE_LIMITED_CODE_SIZE
|
config HAVE_LIMITED_CODE_SIZE
|
||||||
bool
|
bool
|
||||||
|
|
||||||
config INLINE_STEPPER_HACK
|
|
||||||
# Enables gcc to inline stepper_event() into the main timer irq handler
|
|
||||||
bool
|
|
||||||
depends on HAVE_GPIO
|
|
||||||
default y
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
DECL_CONSTANT("STEPPER_STEP_BOTH_EDGE", 1);
|
DECL_CONSTANT("STEPPER_STEP_BOTH_EDGE", 1);
|
||||||
|
|
||||||
#if CONFIG_INLINE_STEPPER_HACK && CONFIG_HAVE_STEPPER_OPTIMIZED_BOTH_EDGE
|
#if CONFIG_INLINE_STEPPER_HACK && CONFIG_WANT_STEPPER_OPTIMIZED_BOTH_EDGE
|
||||||
#define HAVE_OPTIMIZED_PATH 1
|
#define HAVE_OPTIMIZED_PATH 1
|
||||||
#define HAVE_EDGE_OPTIMIZATION 1
|
#define HAVE_EDGE_OPTIMIZATION 1
|
||||||
#define HAVE_AVR_OPTIMIZATION 0
|
#define HAVE_AVR_OPTIMIZATION 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user