HAL cleanup, Teensy 3.1 platform
This commit is contained in:
parent
940c59d9da
commit
e85eca2630
12 changed files with 146 additions and 78 deletions
|
@ -14,6 +14,7 @@ env:
|
||||||
- TEST_PLATFORM="LPC1768"
|
- TEST_PLATFORM="LPC1768"
|
||||||
- TEST_PLATFORM="LPC1769"
|
- TEST_PLATFORM="LPC1769"
|
||||||
- TEST_PLATFORM="STM32F1"
|
- TEST_PLATFORM="STM32F1"
|
||||||
|
- TEST_PLATFORM="teensy31"
|
||||||
- TEST_PLATFORM="teensy35"
|
- TEST_PLATFORM="teensy35"
|
||||||
- TEST_PLATFORM="linux_native"
|
- TEST_PLATFORM="linux_native"
|
||||||
- TEST_PLATFORM="esp32"
|
- TEST_PLATFORM="esp32"
|
||||||
|
|
|
@ -461,7 +461,6 @@
|
||||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||||
#if ENABLED(PIDTEMP)
|
#if ENABLED(PIDTEMP)
|
||||||
//#define MIN_POWER 0
|
|
||||||
//#define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
|
//#define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
|
||||||
//#define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
|
//#define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
|
||||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||||
|
|
|
@ -31,12 +31,12 @@
|
||||||
|
|
||||||
#ifdef ARDUINO_ARCH_SAM
|
#ifdef ARDUINO_ARCH_SAM
|
||||||
|
|
||||||
#include "../shared/persistent_store_api.h"
|
|
||||||
#include "../../inc/MarlinConfig.h"
|
#include "../../inc/MarlinConfig.h"
|
||||||
|
|
||||||
#if ENABLED(EEPROM_SETTINGS) && NONE(I2C_EEPROM, SPI_EEPROM)
|
#if ENABLED(EEPROM_SETTINGS) && NONE(I2C_EEPROM, SPI_EEPROM)
|
||||||
|
|
||||||
#include "../shared/Marduino.h"
|
#include "../shared/Marduino.h"
|
||||||
|
#include "../shared/persistent_store_api.h"
|
||||||
|
|
||||||
#define EEPROMSize 4096
|
#define EEPROMSize 4096
|
||||||
#define PagesPerGroup 128
|
#define PagesPerGroup 128
|
||||||
|
|
|
@ -19,19 +19,17 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description: HAL for Teensy 3.5 and Teensy 3.6
|
* Description: HAL for Teensy 3.5 and Teensy 3.6
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#define CPU_32_BIT
|
#define CPU_32_BIT
|
||||||
|
|
||||||
#include "../shared/Marduino.h"
|
#include "../shared/Marduino.h"
|
||||||
|
#include "../shared/math_32bit.h"
|
||||||
#include "../math_32bit.h"
|
#include "../shared/HAL_SPI.h"
|
||||||
#include "../HAL_SPI.h"
|
|
||||||
|
|
||||||
#include "fastio_Teensy.h"
|
#include "fastio_Teensy.h"
|
||||||
#include "watchdog_Teensy.h"
|
#include "watchdog_Teensy.h"
|
||||||
|
|
|
@ -24,13 +24,10 @@
|
||||||
|
|
||||||
#include "../shared/persistent_store_api.h"
|
#include "../shared/persistent_store_api.h"
|
||||||
|
|
||||||
namespace HAL {
|
bool PersistentStore::access_start() { return true; }
|
||||||
namespace PersistentStore {
|
bool PersistentStore::access_finish() { return true; }
|
||||||
|
|
||||||
bool access_start() { return true; }
|
bool PersistentStore::write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc) {
|
||||||
bool access_finish() { return true; }
|
|
||||||
|
|
||||||
bool write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc) {
|
|
||||||
while (size--) {
|
while (size--) {
|
||||||
uint8_t * const p = (uint8_t * const)pos;
|
uint8_t * const p = (uint8_t * const)pos;
|
||||||
uint8_t v = *value;
|
uint8_t v = *value;
|
||||||
|
@ -50,7 +47,7 @@ bool write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc, const bool writing/*=true*/) {
|
bool PersistentStore::read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc, const bool writing/*=true*/) {
|
||||||
do {
|
do {
|
||||||
uint8_t c = eeprom_read_byte((uint8_t*)pos);
|
uint8_t c = eeprom_read_byte((uint8_t*)pos);
|
||||||
if (writing) *value = c;
|
if (writing) *value = c;
|
||||||
|
@ -61,8 +58,5 @@ bool read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc, const boo
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // PersistentStore
|
|
||||||
} // HAL
|
|
||||||
|
|
||||||
#endif // EEPROM_SETTINGS
|
#endif // EEPROM_SETTINGS
|
||||||
#endif // __MK20DX256__
|
#endif // __MK20DX256__
|
||||||
|
|
|
@ -1,50 +0,0 @@
|
||||||
#if defined(__MK64FX512__) || defined(__MK66FX1M0__)
|
|
||||||
|
|
||||||
#include "../../inc/MarlinConfig.h"
|
|
||||||
|
|
||||||
#if ENABLED(EEPROM_SETTINGS)
|
|
||||||
|
|
||||||
#include "../shared/persistent_store_api.h"
|
|
||||||
|
|
||||||
namespace HAL {
|
|
||||||
namespace PersistentStore {
|
|
||||||
|
|
||||||
bool access_start() { return true; }
|
|
||||||
bool access_finish() { return true; }
|
|
||||||
|
|
||||||
bool write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc) {
|
|
||||||
while (size--) {
|
|
||||||
uint8_t * const p = (uint8_t * const)pos;
|
|
||||||
uint8_t v = *value;
|
|
||||||
// EEPROM has only ~100,000 write cycles,
|
|
||||||
// so only write bytes that have changed!
|
|
||||||
if (v != eeprom_read_byte(p)) {
|
|
||||||
eeprom_write_byte(p, v);
|
|
||||||
if (eeprom_read_byte(p) != v) {
|
|
||||||
SERIAL_ECHO_MSG(MSG_ERR_EEPROM_WRITE);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
crc16(crc, &v, 1);
|
|
||||||
pos++;
|
|
||||||
value++;
|
|
||||||
};
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc, const bool writing/*=true*/) {
|
|
||||||
do {
|
|
||||||
uint8_t c = eeprom_read_byte((uint8_t*)pos);
|
|
||||||
if (writing) *value = c;
|
|
||||||
crc16(crc, &c, 1);
|
|
||||||
pos++;
|
|
||||||
value++;
|
|
||||||
} while (--size);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // PersistentStore
|
|
||||||
} // HAL
|
|
||||||
|
|
||||||
#endif // EEPROM_SETTINGS
|
|
||||||
#endif // __MK64FX512__ || __MK66FX1M0__
|
|
|
@ -16,8 +16,7 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
#pragma once
|
||||||
#ifndef HAL_PINSDEBUG_TEENSY_H
|
|
||||||
|
|
||||||
#define NUMBER_PINS_TOTAL NUM_DIGITAL_PINS
|
#define NUMBER_PINS_TOTAL NUM_DIGITAL_PINS
|
||||||
#define MULTI_NAME_PAD 16 // space needed to be pretty if not first name assigned to a pin
|
#define MULTI_NAME_PAD 16 // space needed to be pretty if not first name assigned to a pin
|
||||||
|
@ -103,5 +102,3 @@ bool HAL_pwm_status(int8_t pin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void HAL_pwm_details(uint8_t pin) { /* TODO */ }
|
static void HAL_pwm_details(uint8_t pin) { /* TODO */ }
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
|
|
||||||
//#define I2C_EEPROM // AT24C64
|
//#define I2C_EEPROM // AT24C64
|
||||||
//#define E2END 0x7FFF // 64KB
|
//#define E2END 0x7FFF // 64KB
|
||||||
// #define FLASH_EEPROM_EMULATION 1
|
//#define FLASH_EEPROM_EMULATION
|
||||||
//#define E2END 0xFFF // 4KB
|
//#define E2END 0xFFF // 4KB
|
||||||
//#define E2END uint32(EEPROM_START_ADDRESS + (EEPROM_PAGE_SIZE * 2) - 1)
|
//#define E2END uint32(EEPROM_START_ADDRESS + (EEPROM_PAGE_SIZE * 2) - 1)
|
||||||
//#define EEPROM_CHITCHAT
|
//#define EEPROM_CHITCHAT
|
||||||
|
|
116
buildroot/share/tests/teensy31-tests
Executable file
116
buildroot/share/tests/teensy31-tests
Executable file
|
@ -0,0 +1,116 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Build tests for Teensy 3.1/3.2 (ARM Cortex-M4)
|
||||||
|
#
|
||||||
|
|
||||||
|
# exit on first failure
|
||||||
|
set -e
|
||||||
|
|
||||||
|
backup_ramps
|
||||||
|
|
||||||
|
restore_configs
|
||||||
|
opt_set MOTHERBOARD BOARD_TEENSY31_32
|
||||||
|
exec_test $1 $2 "Teensy3.1 with default config"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test as many features together as possible
|
||||||
|
#
|
||||||
|
restore_configs
|
||||||
|
opt_set MOTHERBOARD BOARD_TEENSY31_32
|
||||||
|
opt_set EXTRUDERS 2
|
||||||
|
opt_set TEMP_SENSOR_0 1
|
||||||
|
opt_set TEMP_SENSOR_1 5
|
||||||
|
opt_set TEMP_SENSOR_BED 1
|
||||||
|
opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER LCD_INFO_MENU SDSUPPORT SDCARD_SORT_ALPHA \
|
||||||
|
FILAMENT_WIDTH_SENSOR FILAMENT_LCD_DISPLAY CALIBRATION_GCODE BAUD_RATE_GCODE \
|
||||||
|
FIX_MOUNTED_PROBE Z_SAFE_HOMING AUTO_BED_LEVELING_BILINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE \
|
||||||
|
BABYSTEPPING BABYSTEP_XY BABYSTEP_ZPROBE_OFFSET BABYSTEP_ZPROBE_GFX_OVERLAY \
|
||||||
|
PRINTCOUNTER NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE SLOW_PWM_HEATERS PIDTEMPBED EEPROM_SETTINGS INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT M100_FREE_MEMORY_WATCHER \
|
||||||
|
ADVANCED_PAUSE_FEATURE ARC_SUPPORT BEZIER_CURVE_SUPPORT EXPERIMENTAL_I2CBUS EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES PARK_HEAD_ON_PAUSE \
|
||||||
|
PHOTO_GCODE PHOTO_POSITION PHOTO_SWITCH_POSITION PHOTO_SWITCH_MS PHOTO_DELAY_MS PHOTO_RETRACT_MM \
|
||||||
|
HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT
|
||||||
|
opt_set I2C_SLAVE_ADDRESS 63
|
||||||
|
opt_set GRID_MAX_POINTS_X 16
|
||||||
|
exec_test $1 $2 "Teensy3.1 with many features"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test a Sled Z Probe with Linear leveling
|
||||||
|
#
|
||||||
|
restore_configs
|
||||||
|
opt_set MOTHERBOARD BOARD_TEENSY31_32
|
||||||
|
opt_enable EEPROM_SETTINGS Z_PROBE_SLED AUTO_BED_LEVELING_LINEAR DEBUG_LEVELING_FEATURE GCODE_MACROS
|
||||||
|
exec_test $1 $2 "Sled Z Probe with Linear leveling"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test a Servo Probe
|
||||||
|
#
|
||||||
|
# restore_configs
|
||||||
|
# opt_set MOTHERBOARD BOARD_TEENSY31_32
|
||||||
|
# opt_enable Z_PROBE_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE \
|
||||||
|
# AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE EEPROM_SETTINGS
|
||||||
|
# opt_set NUM_SERVOS 1
|
||||||
|
# exec_test $1 $2 "Servo Probe"
|
||||||
|
#
|
||||||
|
# ...with AUTO_BED_LEVELING_3POINT, DEBUG_LEVELING_FEATURE, EEPROM_SETTINGS, EEPROM_CHITCHAT, EXTENDED_CAPABILITIES_REPORT, and AUTO_REPORT_TEMPERATURES
|
||||||
|
#
|
||||||
|
# opt_enable AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE EEPROM_SETTINGS \
|
||||||
|
# EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES
|
||||||
|
# exec_test $1 $2 "...with AUTO_BED_LEVELING_3POINT, DEBUG_LEVELING_FEATURE, EEPROM_SETTINGS, EEPROM_CHITCHAT, EXTENDED_CAPABILITIES_REPORT, and AUTO_REPORT_TEMPERATURES"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test MAGNETIC_PARKING_EXTRUDER with LCD
|
||||||
|
#
|
||||||
|
restore_configs
|
||||||
|
opt_set MOTHERBOARD BOARD_TEENSY31_32
|
||||||
|
opt_set EXTRUDERS 2
|
||||||
|
opt_set TEMP_SENSOR_1 1
|
||||||
|
opt_enable MAGNETIC_PARKING_EXTRUDER ULTIMAKERCONTROLLER
|
||||||
|
exec_test $1 $2 "MAGNETIC_PARKING_EXTRUDER with LCD"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Mixing Extruder
|
||||||
|
#
|
||||||
|
restore_configs
|
||||||
|
opt_set MOTHERBOARD BOARD_TEENSY31_32
|
||||||
|
opt_enable MIXING_EXTRUDER DIRECT_MIXING_IN_G1 GRADIENT_MIX GRADIENT_VTOOL REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
||||||
|
opt_set MIXING_STEPPERS 2
|
||||||
|
exec_test $1 $2 "Mixing Extruder"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test SWITCHING_EXTRUDER
|
||||||
|
#
|
||||||
|
# restore_configs
|
||||||
|
# opt_set MOTHERBOARD BOARD_TEENSY31_32
|
||||||
|
# opt_set EXTRUDERS 2
|
||||||
|
# opt_set NUM_SERVOS 1
|
||||||
|
# opt_enable SWITCHING_EXTRUDER ULTIMAKERCONTROLLER
|
||||||
|
# exec_test $1 $2 "SWITCHING_EXTRUDER"
|
||||||
|
#
|
||||||
|
# Enable COREXY
|
||||||
|
#
|
||||||
|
restore_configs
|
||||||
|
opt_set MOTHERBOARD BOARD_TEENSY31_32
|
||||||
|
opt_enable COREXY
|
||||||
|
exec_test $1 $2 "COREXY"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Enable COREXZ
|
||||||
|
#
|
||||||
|
restore_configs
|
||||||
|
opt_set MOTHERBOARD BOARD_TEENSY31_32
|
||||||
|
opt_enable COREXZ
|
||||||
|
exec_test $1 $2 "COREXZ"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Enable Z_DUAL_STEPPER_DRIVERS, Z_DUAL_ENDSTOPS
|
||||||
|
#
|
||||||
|
restore_configs
|
||||||
|
opt_set MOTHERBOARD BOARD_TEENSY31_32
|
||||||
|
opt_enable Z_DUAL_STEPPER_DRIVERS Z_DUAL_ENDSTOPS
|
||||||
|
pins_set ramps/RAMPS X_MAX_PIN -1
|
||||||
|
opt_add Z2_MAX_PIN 2
|
||||||
|
opt_enable USE_XMAX_PLUG
|
||||||
|
exec_test $1 $2 "Z_DUAL_STEPPER_DRIVERS, Z_DUAL_ENDSTOPS"
|
||||||
|
|
||||||
|
# Clean up
|
||||||
|
restore_configs
|
|
@ -530,6 +530,19 @@ lib_ignore = Adafruit NeoPixel, c1921b4, TMC26XStepper, SailfishLCD, SailfishRGB
|
||||||
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32>
|
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32>
|
||||||
monitor_speed = 250000
|
monitor_speed = 250000
|
||||||
|
|
||||||
|
#
|
||||||
|
# Teensy 3.1 / 3.2 (ARM Cortex-M4)
|
||||||
|
#
|
||||||
|
[env:teensy31]
|
||||||
|
platform = teensy
|
||||||
|
framework = arduino
|
||||||
|
board = teensy31
|
||||||
|
build_flags = ${common.build_flags}
|
||||||
|
lib_deps = ${common.lib_deps}
|
||||||
|
lib_ignore = Adafruit NeoPixel
|
||||||
|
src_filter = ${common.default_src_filter} +<src/HAL/HAL_TEENSY31_32>
|
||||||
|
monitor_speed = 250000
|
||||||
|
|
||||||
#
|
#
|
||||||
# Teensy 3.5 / 3.6 (ARM Cortex-M4)
|
# Teensy 3.5 / 3.6 (ARM Cortex-M4)
|
||||||
#
|
#
|
||||||
|
|
Reference in a new issue