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="LPC1769"
|
||||
- TEST_PLATFORM="STM32F1"
|
||||
- TEST_PLATFORM="teensy31"
|
||||
- TEST_PLATFORM="teensy35"
|
||||
- TEST_PLATFORM="linux_native"
|
||||
- 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_K1 0.95 // Smoothing factor within any PID loop
|
||||
#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_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.
|
||||
|
|
|
@ -31,12 +31,12 @@
|
|||
|
||||
#ifdef ARDUINO_ARCH_SAM
|
||||
|
||||
#include "../shared/persistent_store_api.h"
|
||||
#include "../../inc/MarlinConfig.h"
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS) && NONE(I2C_EEPROM, SPI_EEPROM)
|
||||
|
||||
#include "../shared/Marduino.h"
|
||||
#include "../shared/persistent_store_api.h"
|
||||
|
||||
#define EEPROMSize 4096
|
||||
#define PagesPerGroup 128
|
||||
|
|
|
@ -19,19 +19,17 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* Description: HAL for Teensy 3.5 and Teensy 3.6
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define CPU_32_BIT
|
||||
|
||||
#include "../shared/Marduino.h"
|
||||
|
||||
#include "../math_32bit.h"
|
||||
#include "../HAL_SPI.h"
|
||||
#include "../shared/math_32bit.h"
|
||||
#include "../shared/HAL_SPI.h"
|
||||
|
||||
#include "fastio_Teensy.h"
|
||||
#include "watchdog_Teensy.h"
|
||||
|
|
|
@ -24,13 +24,10 @@
|
|||
|
||||
#include "../shared/persistent_store_api.h"
|
||||
|
||||
namespace HAL {
|
||||
namespace PersistentStore {
|
||||
bool PersistentStore::access_start() { return true; }
|
||||
bool PersistentStore::access_finish() { return true; }
|
||||
|
||||
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) {
|
||||
bool PersistentStore::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;
|
||||
|
@ -50,7 +47,7 @@ bool write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc) {
|
|||
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 {
|
||||
uint8_t c = eeprom_read_byte((uint8_t*)pos);
|
||||
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;
|
||||
}
|
||||
|
||||
} // PersistentStore
|
||||
} // HAL
|
||||
|
||||
#endif // EEPROM_SETTINGS
|
||||
#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/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef HAL_PINSDEBUG_TEENSY_H
|
||||
#pragma once
|
||||
|
||||
#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
|
||||
|
@ -103,5 +102,3 @@ bool HAL_pwm_status(int8_t pin) {
|
|||
}
|
||||
|
||||
static void HAL_pwm_details(uint8_t pin) { /* TODO */ }
|
||||
|
||||
#endif
|
||||
|
|
|
@ -39,13 +39,13 @@
|
|||
// #define MCU_STM32F103ZE // not yet required
|
||||
// Enable EEPROM Emulation for this board, so that we don't overwrite factory data
|
||||
|
||||
// #define I2C_EEPROM // AT24C64
|
||||
// #define E2END 0x7FFF // 64KB
|
||||
// #define FLASH_EEPROM_EMULATION 1
|
||||
// #define E2END 0xFFF // 4KB
|
||||
// #define E2END uint32(EEPROM_START_ADDRESS + (EEPROM_PAGE_SIZE * 2) - 1)
|
||||
// #define EEPROM_CHITCHAT
|
||||
// #define DEBUG_EEPROM_READWRITE
|
||||
//#define I2C_EEPROM // AT24C64
|
||||
//#define E2END 0x7FFF // 64KB
|
||||
//#define FLASH_EEPROM_EMULATION
|
||||
//#define E2END 0xFFF // 4KB
|
||||
//#define E2END uint32(EEPROM_START_ADDRESS + (EEPROM_PAGE_SIZE * 2) - 1)
|
||||
//#define EEPROM_CHITCHAT
|
||||
//#define DEBUG_EEPROM_READWRITE
|
||||
|
||||
//
|
||||
// Limit Switches
|
||||
|
|
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>
|
||||
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)
|
||||
#
|
||||
|
|
Reference in a new issue