Skip to content

Commit

Permalink
Makefile settings allow disabling certain features
Browse files Browse the repository at this point in the history
  • Loading branch information
donovan6000 committed Aug 9, 2017
1 parent 8d7e160 commit 5b58359
Show file tree
Hide file tree
Showing 6 changed files with 523 additions and 321 deletions.
15 changes: 12 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@ FIRMWARE_VERSION = 00.00.01.25
ROM_VERSION_STRING = 1900000125

ENABLE_DEBUG_FEATURES = false
ALLOW_USELESS_COMMANDS = false
ALLOW_HOST_COMMANDS = false
ENABLE_USELESS_COMMANDS = false
ENABLE_HOST_COMMANDS = false
STORE_CONSTANTS_IN_PROGRAM_SPACE = false
REGULATE_EXTRUDER_CURRENT = false
ENABLE_BOUNDARY_ENFORCING = true
ENABLE_BACKLASH_COMPENSATION = true
ENABLE_BED_LEVELING_COMPENSATION = true
ENABLE_SKEW_COMPENSATION = true

FIRMWARE_NAME = $(subst $\",,$(NAME))

Expand All @@ -19,12 +22,18 @@ ifeq ($(OS), Windows_NT)
SIZE = "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe"
DUMP = "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe"
M33MANAGER = "M33 Manager\M33 Manager.exe"

# Linker time optimizations make the firmware larger when using the Windows compiler suite
FLAGS = -fno-lto
else
CC = /opt/avr-toolchain/bin/avr-gcc
COPY = /opt/avr-toolchain/bin/avr-objcopy
SIZE = /opt/avr-toolchain/bin/avr-size
DUMP = /opt/avr-toolchain/bin/avr-objdump
M33MANAGER = "M33 Manager/M33 Manager"

# Linker time optimizations work correctly when using the Linux compiler suite
FLAGS = -flto -flto-partition=1to1
endif

# Assembly source files
Expand Down Expand Up @@ -105,7 +114,7 @@ INCPATH = . \
src/config

# Compiler flags
FLAGS = -D BOARD=USER_BOARD -D FIRMWARE_NAME="$(FIRMWARE_NAME)" -D FIRMWARE_VERSION=$(FIRMWARE_VERSION) -D ENABLE_DEBUG_FEATURES=$(ENABLE_DEBUG_FEATURES) -D ALLOW_USELESS_COMMANDS=$(ALLOW_USELESS_COMMANDS) -D ALLOW_HOST_COMMANDS=$(ALLOW_HOST_COMMANDS) -D STORE_CONSTANTS_IN_PROGRAM_SPACE=$(STORE_CONSTANTS_IN_PROGRAM_SPACE) -D REGULATE_EXTRUDER_CURRENT=$(REGULATE_EXTRUDER_CURRENT) -D ENABLE_BOUNDARY_ENFORCING=$(ENABLE_BOUNDARY_ENFORCING) -Os -finput-charset=UTF-8 -fexec-charset=UTF-8 -mmcu=atxmega32c4 -Wall -Wno-maybe-uninitialized -funsigned-char -funsigned-bitfields -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -fno-strict-aliasing -Werror-implicit-function-declaration -Wpointer-arith -mcall-prologues -mstrict-X -maccumulate-args -fno-tree-ter -mrelax -flto -flto-partition=1to1
FLAGS += -D BOARD=USER_BOARD -D FIRMWARE_NAME="$(FIRMWARE_NAME)" -D FIRMWARE_VERSION=$(FIRMWARE_VERSION) -D ENABLE_DEBUG_FEATURES=$(ENABLE_DEBUG_FEATURES) -D ENABLE_USELESS_COMMANDS=$(ENABLE_USELESS_COMMANDS) -D ENABLE_HOST_COMMANDS=$(ENABLE_HOST_COMMANDS) -D STORE_CONSTANTS_IN_PROGRAM_SPACE=$(STORE_CONSTANTS_IN_PROGRAM_SPACE) -D REGULATE_EXTRUDER_CURRENT=$(REGULATE_EXTRUDER_CURRENT) -D ENABLE_BOUNDARY_ENFORCING=$(ENABLE_BOUNDARY_ENFORCING) -D ENABLE_BACKLASH_COMPENSATION=$(ENABLE_BACKLASH_COMPENSATION) -D ENABLE_BED_LEVELING_COMPENSATION=$(ENABLE_BED_LEVELING_COMPENSATION) -D ENABLE_SKEW_COMPENSATION=$(ENABLE_SKEW_COMPENSATION) -Os -finput-charset=UTF-8 -fexec-charset=UTF-8 -mmcu=atxmega32c4 -Wall -Wno-maybe-uninitialized -funsigned-char -funsigned-bitfields -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -fno-strict-aliasing -Werror-implicit-function-declaration -Wpointer-arith -mcall-prologues -mstrict-X -maccumulate-args -fno-tree-ter -mrelax
ASFLAGS = -std=c++14 -x assembler-with-cpp
CFLAGS = -std=gnu99 -x c -Wstrict-prototypes
CPPFLAGS = -std=c++14 -x c++
Expand Down
13 changes: 9 additions & 4 deletions gcode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ void Gcode::parseCommand(const char *command) noexcept {
// Check if command is a host command
if(*firstValidCharacter == '@') {

// Check if host commands are allowed
#if ALLOW_HOST_COMMANDS == true
// Check if host commands are enabled
#if ENABLE_HOST_COMMANDS == true

// Set command length
uint8_t commandLength = min(static_cast<uint8_t>(stopParsingOffset - startParsingOffset - 1), sizeof(hostCommand) - 1);
Expand Down Expand Up @@ -206,7 +206,10 @@ void Gcode::clearCommand() noexcept {
valueE = 0;
valueN = 0;

#if ALLOW_HOST_COMMANDS == true
// Check if host commands are enabled
#if ENABLE_HOST_COMMANDS == true

// Clear host command
*hostCommand = 0;
#endif
}
Expand Down Expand Up @@ -349,7 +352,9 @@ uint64_t Gcode::getParameterN() const noexcept {
return valueN;
}

#if ALLOW_HOST_COMMANDS == true
// Check if host commands are enabled
#if ENABLE_HOST_COMMANDS == true

bool Gcode::hasHostCommand() const noexcept {

// Return is host command is set
Expand Down
9 changes: 6 additions & 3 deletions gcode.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,8 @@ class Gcode final {
// Get parameter N
uint64_t getParameterN() const noexcept;

#if ALLOW_HOST_COMMANDS == true
// Check if host commands are enabled
#if ENABLE_HOST_COMMANDS == true

// Has host command
bool hasHostCommand() const noexcept;
Expand Down Expand Up @@ -135,8 +136,10 @@ class Gcode final {
float valueE;
uint64_t valueN;

// Host command
#if ALLOW_HOST_COMMANDS == true
// Check if host commands are enabled
#if ENABLE_HOST_COMMANDS == true

// Host command
char hostCommand[UINT8_MAX + 1];
#endif
};
Expand Down
16 changes: 8 additions & 8 deletions main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -308,8 +308,8 @@ int __attribute__((OS_main)) main() noexcept {
// Clear response buffer
*responseBuffer = 0;

// Check if host commands are allowed
#if ALLOW_HOST_COMMANDS == true
// Check if host commands are enabled
#if ENABLE_HOST_COMMANDS == true

// Check if command is a host command
if(requests[currentProcessingRequest].commandParameters & PARAMETER_HOST_COMMAND_OFFSET) {
Expand Down Expand Up @@ -1486,8 +1486,8 @@ int __attribute__((OS_main)) main() noexcept {
}
break;

// Check if useless commands are allowed
#if ALLOW_USELESS_COMMANDS == true
// Check if useless commands are enabled
#if ENABLE_USELESS_COMMANDS == true

// M404
case 404:
Expand Down Expand Up @@ -1518,8 +1518,8 @@ int __attribute__((OS_main)) main() noexcept {
#endif
break;

// Check if useless commands are allowed
#if ALLOW_USELESS_COMMANDS == true
// Check if useless commands are enabled
#if ENABLE_USELESS_COMMANDS == true

// M583
case 583:
Expand Down Expand Up @@ -1615,8 +1615,8 @@ int __attribute__((OS_main)) main() noexcept {
}
break;

// Check if useless commands are allowed
#if ALLOW_USELESS_COMMANDS == true
// Check if useless commands are enabled
#if ENABLE_USELESS_COMMANDS == true

// M5321
case 5321:
Expand Down
Loading

0 comments on commit 5b58359

Please sign in to comment.