-
-
Notifications
You must be signed in to change notification settings - Fork 19.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove -fmerge-all-constants due to GCC bug #20389
Remove -fmerge-all-constants due to GCC bug #20389
Conversation
…if we have a const on global area and a const on progmem, gcc will join both messing up with one of them and generating suble and hard to track bugs
While we hate to see the flash size increase at all, it is not worth trading compiler reliability for a few bytes. It is entirely possible that every byte of increased size is actually one undiscovered bug fixed. I did some searching and found this bug in GCC's bug tracker. It isn't for the exact version of gcc we are using, but shows that these optimizations are problematic and have not always properly considered address regions with different access requirements properly. |
When building for AVR, merge-all-constants can incorrectly combine constants stored in flash with constants stored in RAM. These have different access requirements, leading to undefined behavior during execution. Co-authored-by: ellensp <ellensp@hotmail.com>
When building for AVR, merge-all-constants can incorrectly combine constants stored in flash with constants stored in RAM. These have different access requirements, leading to undefined behavior during execution. Co-authored-by: ellensp <ellensp@hotmail.com>
* USB Media Host followup Restore HAS_SHARED_MEDIA * SMUFF (MMU2 clone) support (MarlinFirmware#19912) * [cron] Bump distribution date (2020-11-19) * Fix broken #include (MarlinFirmware#20193) * Use RTD for MAX31865 reading (MarlinFirmware#20188) * Abort print on media removal (MarlinFirmware#20200) * Fix Filament Change menu item labels (MarlinFirmware#20201) * Remaining Time followup (MarlinFirmware#20199) * Fix GTR NeoPixel pin with FYSETC Mini12864 (MarlinFirmware#20203) * Reduce RAM usage for TFT Color UI on SGen-L V2 (MarlinFirmware#20209) * Add Thermistor 20-21 notes (MarlinFirmware#19246) * MKS WiFi preliminary changes * More MKS WiFi * MKS WiFi strings * Fix Z label * Windows LPC Upload for non-admins (MarlinFirmware#20208) Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com> Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Fix DAC setDrvPct (MarlinFirmware#20205) * [cron] Bump distribution date (2020-11-20) * Longer LK Pro / Alfawise PRO board (MarlinFirmware#20185) * Missing header to use suicide() on LVGL UI (MarlinFirmware#20214) * SINGLE_TOUCH_NAVIGATION Follow Up (MarlinFirmware#20213) * Printrboard labels * [cron] Bump distribution date (2020-11-21) * Fix backward Filament (Presence) Sensor pulls (MarlinFirmware#20228) Co-authored-by: Kurt Haenen <Kurt.Haenen@quintux.com> Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Fix bad SET_FAST_PWM_FREQ calls (MarlinFirmware#20227) * Superscript substitution (MarlinFirmware#20219) Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Power-Loss cleanup * BTN_ENC_EN for many boards (MarlinFirmware#19890) Enables CHECK_ENCODER_ACTIVE_SIGNAL for many more boards. Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> Co-authored-by: Jason Smith <jason.inet@gmail.com> * Skip unnecessary (costly) SW Stepper Enable (MarlinFirmware#20218) Co-authored-by: Jason Smith <jason.inet@gmail.com> Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Fix Load Filament wait (MarlinFirmware#20243) * Proper pullup/pulldown configurability (MarlinFirmware#20242) Co-authored-by: Scott Lahteine <github@thinkyhead.com> * [cron] Bump distribution date (2020-11-22) * Clear menu history for browse media on insert (MarlinFirmware#20236) Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Put "$3" on all tests * Move core conditionals earlier * Hide docker droppings * [cron] Bump distribution date (2020-11-23) * Fix UBL manual mesh adjust behavior (MarlinFirmware#20248) * Allow Status Message without LCD (MarlinFirmware#20246) * Fix dummy thermistors for Bed, Chamber, Probe (MarlinFirmware#20247) * Fix Z4 in ENABLE/DISABLE_AXIS_Z (MarlinFirmware#20256) This was accidentally broken in PR MarlinFirmware#20218 * [cron] Bump distribution date (2020-11-24) * LCD position in current units (MarlinFirmware#20145) * Set "lcd_move_e" index to fix the label (MarlinFirmware#20263) * Allow cold Filament Load/Unload with M302 P1 (MarlinFirmware#20262) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * No Z_MULTI_ENDSTOPS when HOMING_Z_WITH_PROBE (MarlinFirmware#20254) * Consistent Probe XY offset type * Cosmetic G29 ABL tweak * [cron] Bump distribution date (2020-11-25) * Update TOUCH_UI_LULZBOT_BIO wrappers * add missing header to use HAS_SD_HOST_DRIVE (MarlinFirmware#20270) * Fix COLOR_UI without TOUCH_SCREEN_CALIBRATION (MarlinFirmware#20269) * [cron] Bump distribution date (2020-11-26) * Probe Offset Wizard improvements (MarlinFirmware#20239) * Reduce warnings, extern "C" cleanup (MarlinFirmware#20279) * Retire HAL for STM32F4 / F7 (MarlinFirmware#20153) * Tweak some pin errors * MKS Robin E3 / E3D v1.1 (MarlinFirmware#20216) * Finish HAL/STM32 cpp wrappers * No auto debug for EEPROM_CHITCHAT * Optimize emergency parser check * Level Corners with Probe option (MarlinFirmware#20241) * [WIP] Fix Probe::offset_xy (MarlinFirmware#20290) Co-authored-by: Jason Smith <jason.inet@gmail.com> * [cron] Bump distribution date (2020-11-27) * M808 Repeat Markers (MarlinFirmware#20084) * FIX TMC menu message (MarlinFirmware#20294) * Fix BTT GTR 1.0 endstop/DIAG pins (MarlinFirmware#20296) * Fix G2/G3 arcs > 180° (MarlinFirmware#20292) * Group related homing options (MarlinFirmware#20283) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * Fix M73 LCD code typo (MarlinFirmware#20300) * [cron] Bump distribution date (2020-11-28) * [cron] Bump distribution date (2020-11-29) * Arc Direction followup for circles (MarlinFirmware#20314) * SKR E3 Turbo Controller Fan (MarlinFirmware#20320) * Fix STM32F1 'freeMemory()' warnings (MarlinFirmware#20319) * Leveling Fade Height default setting (MarlinFirmware#20316) * [cron] Bump distribution date (2020-11-30) * Adjust axis homed / trusted methods (MarlinFirmware#20323) * General cleanup * Increase E3V2 DWIN steps/mm range to 999.9 (MarlinFirmware#20324) * [cron] Bump distribution date (2020-12-01) * Prevent Watchdog reset writing Creality 4.x EEPROM (MarlinFirmware#20328) * Fix E3V2 Control Menu when returning from Info (MarlinFirmware#20338) * Tweak to EEPROM safe delay * [cron] Bump distribution date (2020-12-02) * Level Bed Corners is a sub-menu * Update to STM32 v10, optimize build (MarlinFirmware#20325) * Help hosts when password-locked (MarlinFirmware#20348) * Fix E3V2 DWIN Jerk Menu (MarlinFirmware#20352) * Fix E3V2 DWIN build without CLASSIC_JERK * Fix jerk edits applying to wrong index * Permit SD EEPROM emulation on E3V2 (MarlinFirmware#20353) * [cron] Bump distribution date (2020-12-03) * Fix circle arc condition (MarlinFirmware#20322) * Fix up start, monitor baud (MarlinFirmware#20326) * Consolidate common pin includes * Require minimum PlatformIO version (MarlinFirmware#20361) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> Co-authored-by: Jason Smith <jason.inet@gmail.com> * [cron] Bump distribution date (2020-12-04) * Fix MESH_BED_LEVELING w/o SEGMENT_LEVELED_MOVES (MarlinFirmware#20363) * Loosen E on pause for fila-manipulation (MarlinFirmware#20346) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * [cron] Bump distribution date (2020-12-05) * Don’t use near keyword as variable name (MarlinFirmware#20374) * Improved Longer3D LKx Pro board (MarlinFirmware#20372) Co-authored-by: mrv96 <marione96@live.it> * Fix TMC_HOME_PHASE divide by zero (MarlinFirmware#20368) * Suspend Servos for STM32+NeoPixel (MarlinFirmware#19963) * Add Creality 4.5.2 board (MarlinFirmware#20378) Co-authored-by: Jason Smith <jason.inet@gmail.com> * [cron] Bump distribution date (2020-12-06) * Fix FYSETC S6 I2C EEPROM size (MarlinFirmware#20340) Both V1.2 and V2.0 boards have a 24LC16, which is a 2kB EEPROM. Co-authored-by: PingWin <kirill@shashlov.ru> Co-authored-by: Jason Smith <jason.inet@gmail.com> * Creality 4.5.2 format and fix * Use 'nearby' for 'near' * ExtUI homing / leveling additions * Move G29 3-point startup earlier * Fix STM32F1 SERIAL_GET_TX_BUFFER_FREE * G28 tweaks * G28 followup * Avoid invalid memory optimizations (MarlinFirmware#20389) When building for AVR, merge-all-constants can incorrectly combine constants stored in flash with constants stored in RAM. These have different access requirements, leading to undefined behavior during execution. Co-authored-by: ellensp <ellensp@hotmail.com> * [cron] Bump distribution date (2020-12-07) * Fix fileExists, use openFailed * Watch idle() depth over 5 * More LPC P-string macros * Fix auto#.g file handling, add NO_SD_AUTOSTART (MarlinFirmware#20071) * Shorten Filament Load/Unload Strings to Fit on Graphical Displays (MarlinFirmware#20369) Co-authored-by: ellensp <ellensp@ellensp-HP-ProBook-6470b.fritz.box> Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com> * Allow BTT EXP-MOT be used with Displays that needs only EXP 1 (MarlinFirmware#20396) Co-authored-by: ellensp <ellensp@ellensp-HP-ProBook-6470b.fritz.box> Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com> * [cron] Bump distribution date (2020-12-08) * SPI TFT for STM32F4 boards (MarlinFirmware#20384) * fix pinsDebug for F1 boards * add MKS Robin PRO V2 board - development board * tft spi working with F4 boards * pins formating * sanity check for TFT on supported cores in STM32 * Fix tabs/spaces in pins file Co-authored-by: Jason Smith <jason.inet@gmail.com> * [cron] Bump distribution date (2020-12-09) * Style, spacing, typo cleanup for recent changes * Clarify Delta & SCARA config location (MarlinFirmware#20403) * Allow positive Z nozzle to probe offset (MarlinFirmware#20344) * Allow a positive value for z offset from nozzle to probe without sanity checks * Simplify menu_probe_offset.cpp (HOMING_Z_WITH_PROBE) * Add some more explanation to Configuration Files * Raise after probe_at_point as if homed Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> Co-authored-by: Jason Smith <jason.inet@gmail.com> * Fix Spindle/Laser Control menu (MarlinFirmware#20347) * Fixes and additions to FTDI EVE Touch UI (MarlinFirmware#20393) - Fixed name conflict with "SUBSCRIPT_TWO" - Fixed rendering bugs in "Leveling Menu" - Only show "Bed Mesh Screen" when UBL is enabled - Removed CocoaPress code from generic "Main Menu" - Removed CocoaPress code from LulzBot Bio "Status" screen - Moved generic "Move Axis" functionality into a base class - Added CocoaPress custom screens: - Status Screen - Unload Cartridge - Load Chocolate - Main Menu - Advanced Settings - XYZ Move (based on "Move Axis" base class) - Extrusion Move (based on "Move Axis" base class) - CocoaPress tweaks to "Temperature" screen - Fix FTDI EVE Touch UI compilation errors when not using leveling. * Move ExtUI ABL mesh edit, limit to bilinear (MarlinFirmware#20381) * Move ExtUI call Co-authored-by: Scott Lahteine <github@thinkyhead.com> Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com> Co-authored-by: Sebastiaan Dammann <sebastiaandammann@outlook.com> * MKS Robin Pins fixes for STM32 and STM32F1 (MarlinFirmware#20404) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * [cron] Bump distribution date (2020-12-10) * Clarify "not Interrupt-capable" error message (MarlinFirmware#20419) * Fix UBL Debug Messages (MarlinFirmware#20423) Co-authored-by: ellensp <ellensp@hotmsil.com> * [cron] Bump distribution date (2020-12-11) * Z_SENSORLESS sanity checks (MarlinFirmware#20421) Co-authored-by: Jason Smith <jason.inet@gmail.com> * Probe offset wizard fixes (MarlinFirmware#20414) * STOW probe, reverting incorrect earlier change from MarlinFirmware#20344 * Adjust soft endstop disables, to ensure travel below bed functions properly Co-authored-by: FanDjango <FanDjango@users.noreply.github.com> * SENSORLESS_PROBING sanity check followup (MarlinFirmware#20438) * [cron] Bump distribution date (2020-12-12) * Better animated boot screen * Fix SDCARD_SORT_ALPHA on Ender 3 V2 (MarlinFirmware#20443) * Add HAS_PIN_27_BOARD for CREALITY_V4 (MarlinFirmware#20446) Co-authored-by: ellensp <ellensp@hotmsil.com> * Improve ASSISTED_TRAMMING_WIZARD probe stowing (MarlinFirmware#20437) * When BLTOUCH_HS_MODE enabled, stow pin before user interaction * For all probes, ensure probe stows at end of wizard * [cron] Bump distribution date (2020-12-13) * Probe Offset Wizard followupBack to PROBE_PT_RAISE/separate STOW, make "PROBING" msg appear (MarlinFirmware#20439) * Go back to always use PROBE_PT_RAISE with a discrete stow. This ensures a raise above the bed, while stowing prior to exiting the wizard. * Fix issue preventing text while moving to X/Y position Co-authored-by: FanDjango <FanDjango@users.noreply.github.com> * Adjust planner debugging * SHORT_MANUAL_Z_MOVE => FINE_MANUAL_MOVE * [cron] Bump distribution date (2020-12-14) * LPC176x framework update (MarlinFirmware#20469) * [cron] Bump distribution date (2020-12-15) * Fix formatting * Preheat before leveling * Always enable leveling after G28 * Trust that script -x flags will always be set (MarlinFirmware#20453) * Fix M1001 auto-check logic (MarlinFirmware#20456) * Auto-check followup * Please install the EditorConfig plugin * Fix RESTORE_LEVELING_AFTER_G28 (MarlinFirmware#20471) * Creality v4.5.3 (CR-6 SE, CR-6 MAX) (MarlinFirmware#20468) * Update some pins errors * Update some LCD includes * Trust STM32 gcc versions * [cron] Bump distribution date (2020-12-16) * Update Italian language (MarlinFirmware#20480) * Update Hungarian language Co-Authored-By: Zs.Antal <45710979+AntoszHUN@users.noreply.github.com> * Update French language (MarlinFirmware#20472) * [cron] Bump distribution date (2020-12-17) * Use homing_feedrate function * Homing feedrates as XYZ array (MarlinFirmware#20426) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * Fix ZoneStar LCD 2004 buttons (MarlinFirmware#20489) * Make M220 B / R a standard feature (MarlinFirmware#20355) * Balance CI tests (MarlinFirmware#20485) * Fix and optimize MightyBoard (MarlinFirmware#20493) * [cron] Bump distribution date (2020-12-18) * MKS Robin Nano V3 and STM32F4x0Vx Variant (MarlinFirmware#20430) * DOGM: Slow down touchscreen calibration (MarlinFirmware#20454) * [cron] Bump distribution date (2020-12-19) * Rename QUIET_PROBING * Tweaks for pins_BTT_SKR_common.h * [cron] Bump distribution date (2020-12-20) * Let boards set Default TMC Slave Addresses (MarlinFirmware#20498) Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Minimum temp options for Probing and G12 Nozzle Clean (MarlinFirmware#20383) Co-authored-by: Jason Smith <jason.inet@gmail.com> Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Probe Tare, Probe Activation Switch (MarlinFirmware#20379) Co-authored-by: Scott Lahteine <github@thinkyhead.com> Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com> Co-authored-by: Jason Smith <jason.inet@gmail.com> * Fix Creality EEPROM watchdog freq. (MarlinFirmware#20510) * Migrate Hispeedv1 (QQS-Pro) to HAL/STM32 (MarlinFirmware#20354) * Languages cleanup * Update Russian and Ukrainian languages (MarlinFirmware#20508) * Fix PIO typo * [cron] Bump distribution date (2020-12-21) * Get E3V2 DWIN `MACHINE_SIZE` from config (MarlinFirmware#20526) * Apply HOME_AFTER_DEACTIVATE for 'G28 O' (MarlinFirmware#20525) * Clean up some pins * Add BTT SKR CR6 board (MarlinFirmware#20522) * Fix G34 compile with bed leveling disabled (MarlinFirmware#20537) * Fix some Russian (MarlinFirmware#20529) * Robin pins followup * Tweak FTDI spacing * Add Tune -> Advanced Settings to FTDI EVE (MarlinFirmware#20532) * [cron] Bump distribution date (2020-12-22) * 12-bit ADC resolution for STM32 (MarlinFirmware#20519) * FTDI EVE custom user menus (MarlinFirmware#20518) * Improve STM32 timer conflict messages (MarlinFirmware#20544) * Fix UBL mesh inset Z position (MarlinFirmware#20538) * Overrides to prevent STM32 timer conflicts (MarlinFirmware#20545) * Improve Touch Calibration screen (MarlinFirmware#20524) * Creality v4.3.1 (Ender 6) board (MarlinFirmware#20512) * Anet ET4 / ET4P and Anet TFT28 / TFT35 (MarlinFirmware#20280) * STM32F1xx support for TFTGLCD (MarlinFirmware#20515) * Unify FYSETC F6 1.3 / 1.4 (MarlinFirmware#20507) Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Fix G28 leveling state, UBL compile (MarlinFirmware#20499) * Support RGBW on PCA9632 (MarlinFirmware#20455) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * [cron] Bump distribution date (2020-12-23) * Refactor 'Level Corners with Probe' (MarlinFirmware#20460) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * Improve plan_arc circle detection (MarlinFirmware#20440) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * FTDI EVE: Cyrillic font, some minor fixes (MarlinFirmware#20517) * Enhanced Italian language (MarlinFirmware#20551) * Probe Activation Switch followup (MarlinFirmware#20550) * Support ANET_FULL_GRAPHICS_LCD_ALT_WIRING on BTT SKR 1.4 (MarlinFirmware#20427) * Apply ENABLED in ExiUI / FTDI * Remaining Time for FTDI EVE, bp for ExtUI (MarlinFirmware#20549) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * Add OPTIMIZED_MESH_STORAGE option (for UBL) (MarlinFirmware#20371) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * [cron] Bump distribution date (2020-12-24) * Move BTT_SKR_CR6 * LVGL and Classic UI for STM32 (MarlinFirmware#20552) * Add "End Repeat Loops" menu item * Fix DOGM status message scrolling (MarlinFirmware#20557) * Fix ST7920 timing for Rumba32, Fysetc S6 (MarlinFirmware#20556) * Fix, clean up FTDI EVE Touch UI (MarlinFirmware#20466) Co-Authored-By: Marcio T. <mlt4356-github@yahoo.com> * Apply NO_MOTION_BEFORE_HOMING to joystick motion (MarlinFirmware#20462) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * Cutter Power in percent format (MarlinFirmware#20410) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> Co-authored-by: Jason Smith <jason.inet@gmail.com> Co-authored-by: Luu Lac <45380455+shitcreek@users.noreply.github.com> * [cron] Bump distribution date (2020-12-25) * [cron] Bump distribution date (2020-12-26) * [cron] Bump distribution date (2020-12-27) * Fix SPINDLE_LASER_FREQUENCY (MarlinFirmware#20509) * Fix some comments * Remove CREALITY_TOUCH * Add probe_switch_activated * Init tare pin once * [cron] Bump distribution date (2020-12-28) * Validate defined probe points (MarlinFirmware#20572) * General cleanup * Allow define HOMING_FEEDRATE_(XY|Z) * Remove URL scheme * Small / Large Boot Screen option for TFT_COLOR_UI (MarlinFirmware#20578) * Better defaults, compatibility for SDIO + STM32 (MarlinFirmware#20570) * Fix Menu Mixer for Color UI (MarlinFirmware#20566) * Use ADC_RESOLUTION 12 for all STM32 (MarlinFirmware#20562) * Fix LVGL_UI G-code preview (MarlinFirmware#20564) * Fix Change Filament menu actions (MarlinFirmware#20565) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * Menu item index followup Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> Co-authored-by: Giuliano Zaro <3684609+GMagician@users.noreply.github.com> Co-authored-by: bosd <evbokhoven@gmail.com> Co-authored-by: JoAnn Manges <joannmanges@gmail.com> Co-authored-by: Victor Oliveira <rhapsodyv@gmail.com> Co-authored-by: ellensp <ellensp@hotmail.com> Co-authored-by: Maciej Rutkowski <onfoot@users.noreply.github.com> Co-authored-by: Till <quastus@gmail.com> Co-authored-by: Scott Lahteine <github@thinkyhead.com> Co-authored-by: Vitaliy <burkut_vit@mail.ru> Co-authored-by: Orel <37673727+0r31@users.noreply.github.com> Co-authored-by: Ajtak <ajtak.jakub@gmail.com> Co-authored-by: Kurt Haenen <Misterke@users.noreply.github.com> Co-authored-by: Kurt Haenen <Kurt.Haenen@quintux.com> Co-authored-by: Simone Primarosa <simonepri@outlook.com> Co-authored-by: Gurmeet Athwal <gurmeet.athwal@gmail.com> Co-authored-by: Jason Smith <jason.inet@gmail.com> Co-authored-by: qwewer0 <57561110+qwewer0@users.noreply.github.com> Co-authored-by: rdhoggattjr <64983896+rdhoggattjr@users.noreply.github.com> Co-authored-by: pseudex <pseudaex@gmail.com> Co-authored-by: swissnorp <67485708+swissnorp@users.noreply.github.com> Co-authored-by: mks-viva <1224833100@qq.com> Co-authored-by: wmariz <11435639+wmariz@users.noreply.github.com> Co-authored-by: Štěpán Dalecký <36531759+daleckystepan@users.noreply.github.com> Co-authored-by: BsCmOD <64871957+BsCmOD@users.noreply.github.com> Co-authored-by: yysh12 <yysh12@users.noreply.github.com> Co-authored-by: Sergey1560 <53866542+Sergey1560@users.noreply.github.com> Co-authored-by: Thomas Niccolo Reyes <niccoreyes@gmail.com> Co-authored-by: Alexander D. Kanevskiy <kad@kad.name> Co-authored-by: Mathias Rasmussen <mathiasvr@gmail.com> Co-authored-by: Luu Lac <45380455+shitcreek@users.noreply.github.com> Co-authored-by: Belin Fieldson <thebelin@gmail.com> Co-authored-by: Tanguy Pruvot <tpruvot@users.noreply.github.com> Co-authored-by: mrv96 <marione96@live.it> Co-authored-by: InsanityAutomation <38436470+InsanityAutomation@users.noreply.github.com> Co-authored-by: LinFor <linfor@gmail.com> Co-authored-by: PingWin <kirill@shashlov.ru> Co-authored-by: ellensp <ellensp@ellensp-HP-ProBook-6470b.fritz.box> Co-authored-by: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com> Co-authored-by: Mike La Spina <mike.laspina@shaw.ca> Co-authored-by: Marcio T <mlt4356-github@yahoo.com> Co-authored-by: Sebastiaan Dammann <sebastiaandammann@outlook.com> Co-authored-by: ellensp <ellensp@hotmsil.com> Co-authored-by: elasticdotventures <35611074+elasticdotventures@users.noreply.github.com> Co-authored-by: FanDjango <51046875+FanDjango@users.noreply.github.com> Co-authored-by: FanDjango <FanDjango@users.noreply.github.com> Co-authored-by: leodoener <leodoener@gmail.com> Co-authored-by: Chris Pepper <p3p@p3psoft.co.uk> Co-authored-by: kisslorand <50251547+kisslorand@users.noreply.github.com> Co-authored-by: Zs.Antal <45710979+AntoszHUN@users.noreply.github.com> Co-authored-by: rafaljot <rafal@jastrzebscy.org> Co-authored-by: nb-rapidia <43864438+nb-rapidia@users.noreply.github.com> Co-authored-by: grauerfuchs <42082416+grauerfuchs@users.noreply.github.com> Co-authored-by: Foxies <Foxies-CSTL@users.noreply.github.com> Co-authored-by: Serhiy-K <52166448+Serhiy-K@users.noreply.github.com> Co-authored-by: Dick Streefland <dick@streefland.net> Co-authored-by: cr20-123 <66994235+cr20-123@users.noreply.github.com> Co-authored-by: X-Ryl669 <boite.pour.spam@gmail.com> Co-authored-by: Sean McGroty <sean@darkon.net> Co-authored-by: Jan Krajdl <spm@spamik.cz> Co-authored-by: Darren Peter <killallthehumans@gmail.com> Co-authored-by: ubik2 <ubik2@users.noreply.github.com> Co-authored-by: Vi B-P <violetbp@eecs.umich.edu> Co-authored-by: Ashammaru <xgxede@gmail.com>
* MKS WiFi preliminary changes * More MKS WiFi * MKS WiFi strings * Fix Z label * Windows LPC Upload for non-admins (MarlinFirmware#20208) Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com> Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Fix DAC setDrvPct (MarlinFirmware#20205) * [cron] Bump distribution date (2020-11-20) * Longer LK Pro / Alfawise PRO board (MarlinFirmware#20185) * Missing header to use suicide() on LVGL UI (MarlinFirmware#20214) * SINGLE_TOUCH_NAVIGATION Follow Up (MarlinFirmware#20213) * Printrboard labels * [cron] Bump distribution date (2020-11-21) * Fix backward Filament (Presence) Sensor pulls (MarlinFirmware#20228) Co-authored-by: Kurt Haenen <Kurt.Haenen@quintux.com> Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Fix bad SET_FAST_PWM_FREQ calls (MarlinFirmware#20227) * Superscript substitution (MarlinFirmware#20219) Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Power-Loss cleanup * BTN_ENC_EN for many boards (MarlinFirmware#19890) Enables CHECK_ENCODER_ACTIVE_SIGNAL for many more boards. Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> Co-authored-by: Jason Smith <jason.inet@gmail.com> * Skip unnecessary (costly) SW Stepper Enable (MarlinFirmware#20218) Co-authored-by: Jason Smith <jason.inet@gmail.com> Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Fix Load Filament wait (MarlinFirmware#20243) * Proper pullup/pulldown configurability (MarlinFirmware#20242) Co-authored-by: Scott Lahteine <github@thinkyhead.com> * [cron] Bump distribution date (2020-11-22) * Clear menu history for browse media on insert (MarlinFirmware#20236) Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Put "$3" on all tests * Move core conditionals earlier * Hide docker droppings * [cron] Bump distribution date (2020-11-23) * Fix UBL manual mesh adjust behavior (MarlinFirmware#20248) * Allow Status Message without LCD (MarlinFirmware#20246) * Fix dummy thermistors for Bed, Chamber, Probe (MarlinFirmware#20247) * Fix Z4 in ENABLE/DISABLE_AXIS_Z (MarlinFirmware#20256) This was accidentally broken in PR MarlinFirmware#20218 * [cron] Bump distribution date (2020-11-24) * LCD position in current units (MarlinFirmware#20145) * Set "lcd_move_e" index to fix the label (MarlinFirmware#20263) * Allow cold Filament Load/Unload with M302 P1 (MarlinFirmware#20262) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * No Z_MULTI_ENDSTOPS when HOMING_Z_WITH_PROBE (MarlinFirmware#20254) * Consistent Probe XY offset type * Cosmetic G29 ABL tweak * [cron] Bump distribution date (2020-11-25) * Update TOUCH_UI_LULZBOT_BIO wrappers * add missing header to use HAS_SD_HOST_DRIVE (MarlinFirmware#20270) * Fix COLOR_UI without TOUCH_SCREEN_CALIBRATION (MarlinFirmware#20269) * [cron] Bump distribution date (2020-11-26) * Probe Offset Wizard improvements (MarlinFirmware#20239) * Reduce warnings, extern "C" cleanup (MarlinFirmware#20279) * Retire HAL for STM32F4 / F7 (MarlinFirmware#20153) * Tweak some pin errors * MKS Robin E3 / E3D v1.1 (MarlinFirmware#20216) * Finish HAL/STM32 cpp wrappers * No auto debug for EEPROM_CHITCHAT * Optimize emergency parser check * Level Corners with Probe option (MarlinFirmware#20241) * [WIP] Fix Probe::offset_xy (MarlinFirmware#20290) Co-authored-by: Jason Smith <jason.inet@gmail.com> * [cron] Bump distribution date (2020-11-27) * M808 Repeat Markers (MarlinFirmware#20084) * FIX TMC menu message (MarlinFirmware#20294) * Fix BTT GTR 1.0 endstop/DIAG pins (MarlinFirmware#20296) * Fix G2/G3 arcs > 180° (MarlinFirmware#20292) * Group related homing options (MarlinFirmware#20283) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * Fix M73 LCD code typo (MarlinFirmware#20300) * [cron] Bump distribution date (2020-11-28) * [cron] Bump distribution date (2020-11-29) * Arc Direction followup for circles (MarlinFirmware#20314) * SKR E3 Turbo Controller Fan (MarlinFirmware#20320) * Fix STM32F1 'freeMemory()' warnings (MarlinFirmware#20319) * Leveling Fade Height default setting (MarlinFirmware#20316) * [cron] Bump distribution date (2020-11-30) * Adjust axis homed / trusted methods (MarlinFirmware#20323) * General cleanup * Increase E3V2 DWIN steps/mm range to 999.9 (MarlinFirmware#20324) * [cron] Bump distribution date (2020-12-01) * Prevent Watchdog reset writing Creality 4.x EEPROM (MarlinFirmware#20328) * Fix E3V2 Control Menu when returning from Info (MarlinFirmware#20338) * Tweak to EEPROM safe delay * [cron] Bump distribution date (2020-12-02) * Level Bed Corners is a sub-menu * Update to STM32 v10, optimize build (MarlinFirmware#20325) * Help hosts when password-locked (MarlinFirmware#20348) * Fix E3V2 DWIN Jerk Menu (MarlinFirmware#20352) * Fix E3V2 DWIN build without CLASSIC_JERK * Fix jerk edits applying to wrong index * Permit SD EEPROM emulation on E3V2 (MarlinFirmware#20353) * [cron] Bump distribution date (2020-12-03) * Fix circle arc condition (MarlinFirmware#20322) * Fix up start, monitor baud (MarlinFirmware#20326) * Consolidate common pin includes * Require minimum PlatformIO version (MarlinFirmware#20361) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> Co-authored-by: Jason Smith <jason.inet@gmail.com> * [cron] Bump distribution date (2020-12-04) * Fix MESH_BED_LEVELING w/o SEGMENT_LEVELED_MOVES (MarlinFirmware#20363) * Loosen E on pause for fila-manipulation (MarlinFirmware#20346) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * [cron] Bump distribution date (2020-12-05) * Don’t use near keyword as variable name (MarlinFirmware#20374) * Improved Longer3D LKx Pro board (MarlinFirmware#20372) Co-authored-by: mrv96 <marione96@live.it> * Fix TMC_HOME_PHASE divide by zero (MarlinFirmware#20368) * Suspend Servos for STM32+NeoPixel (MarlinFirmware#19963) * Add Creality 4.5.2 board (MarlinFirmware#20378) Co-authored-by: Jason Smith <jason.inet@gmail.com> * [cron] Bump distribution date (2020-12-06) * Fix FYSETC S6 I2C EEPROM size (MarlinFirmware#20340) Both V1.2 and V2.0 boards have a 24LC16, which is a 2kB EEPROM. Co-authored-by: PingWin <kirill@shashlov.ru> Co-authored-by: Jason Smith <jason.inet@gmail.com> * Creality 4.5.2 format and fix * Use 'nearby' for 'near' * ExtUI homing / leveling additions * Move G29 3-point startup earlier * Fix STM32F1 SERIAL_GET_TX_BUFFER_FREE * G28 tweaks * G28 followup * Avoid invalid memory optimizations (MarlinFirmware#20389) When building for AVR, merge-all-constants can incorrectly combine constants stored in flash with constants stored in RAM. These have different access requirements, leading to undefined behavior during execution. Co-authored-by: ellensp <ellensp@hotmail.com> * [cron] Bump distribution date (2020-12-07) * Fix fileExists, use openFailed * Watch idle() depth over 5 * More LPC P-string macros * Fix auto#.g file handling, add NO_SD_AUTOSTART (MarlinFirmware#20071) * Shorten Filament Load/Unload Strings to Fit on Graphical Displays (MarlinFirmware#20369) Co-authored-by: ellensp <ellensp@ellensp-HP-ProBook-6470b.fritz.box> Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com> * Allow BTT EXP-MOT be used with Displays that needs only EXP 1 (MarlinFirmware#20396) Co-authored-by: ellensp <ellensp@ellensp-HP-ProBook-6470b.fritz.box> Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com> * [cron] Bump distribution date (2020-12-08) * SPI TFT for STM32F4 boards (MarlinFirmware#20384) * fix pinsDebug for F1 boards * add MKS Robin PRO V2 board - development board * tft spi working with F4 boards * pins formating * sanity check for TFT on supported cores in STM32 * Fix tabs/spaces in pins file Co-authored-by: Jason Smith <jason.inet@gmail.com> * [cron] Bump distribution date (2020-12-09) * Style, spacing, typo cleanup for recent changes * Clarify Delta & SCARA config location (MarlinFirmware#20403) * Allow positive Z nozzle to probe offset (MarlinFirmware#20344) * Allow a positive value for z offset from nozzle to probe without sanity checks * Simplify menu_probe_offset.cpp (HOMING_Z_WITH_PROBE) * Add some more explanation to Configuration Files * Raise after probe_at_point as if homed Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> Co-authored-by: Jason Smith <jason.inet@gmail.com> * Fix Spindle/Laser Control menu (MarlinFirmware#20347) * Fixes and additions to FTDI EVE Touch UI (MarlinFirmware#20393) - Fixed name conflict with "SUBSCRIPT_TWO" - Fixed rendering bugs in "Leveling Menu" - Only show "Bed Mesh Screen" when UBL is enabled - Removed CocoaPress code from generic "Main Menu" - Removed CocoaPress code from LulzBot Bio "Status" screen - Moved generic "Move Axis" functionality into a base class - Added CocoaPress custom screens: - Status Screen - Unload Cartridge - Load Chocolate - Main Menu - Advanced Settings - XYZ Move (based on "Move Axis" base class) - Extrusion Move (based on "Move Axis" base class) - CocoaPress tweaks to "Temperature" screen - Fix FTDI EVE Touch UI compilation errors when not using leveling. * Move ExtUI ABL mesh edit, limit to bilinear (MarlinFirmware#20381) * Move ExtUI call Co-authored-by: Scott Lahteine <github@thinkyhead.com> Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com> Co-authored-by: Sebastiaan Dammann <sebastiaandammann@outlook.com> * MKS Robin Pins fixes for STM32 and STM32F1 (MarlinFirmware#20404) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * [cron] Bump distribution date (2020-12-10) * Clarify "not Interrupt-capable" error message (MarlinFirmware#20419) * Fix UBL Debug Messages (MarlinFirmware#20423) Co-authored-by: ellensp <ellensp@hotmsil.com> * [cron] Bump distribution date (2020-12-11) * Z_SENSORLESS sanity checks (MarlinFirmware#20421) Co-authored-by: Jason Smith <jason.inet@gmail.com> * Probe offset wizard fixes (MarlinFirmware#20414) * STOW probe, reverting incorrect earlier change from MarlinFirmware#20344 * Adjust soft endstop disables, to ensure travel below bed functions properly Co-authored-by: FanDjango <FanDjango@users.noreply.github.com> * SENSORLESS_PROBING sanity check followup (MarlinFirmware#20438) * [cron] Bump distribution date (2020-12-12) * Better animated boot screen * Fix SDCARD_SORT_ALPHA on Ender 3 V2 (MarlinFirmware#20443) * Add HAS_PIN_27_BOARD for CREALITY_V4 (MarlinFirmware#20446) Co-authored-by: ellensp <ellensp@hotmsil.com> * Improve ASSISTED_TRAMMING_WIZARD probe stowing (MarlinFirmware#20437) * When BLTOUCH_HS_MODE enabled, stow pin before user interaction * For all probes, ensure probe stows at end of wizard * [cron] Bump distribution date (2020-12-13) * Probe Offset Wizard followupBack to PROBE_PT_RAISE/separate STOW, make "PROBING" msg appear (MarlinFirmware#20439) * Go back to always use PROBE_PT_RAISE with a discrete stow. This ensures a raise above the bed, while stowing prior to exiting the wizard. * Fix issue preventing text while moving to X/Y position Co-authored-by: FanDjango <FanDjango@users.noreply.github.com> * Adjust planner debugging * SHORT_MANUAL_Z_MOVE => FINE_MANUAL_MOVE * [cron] Bump distribution date (2020-12-14) * LPC176x framework update (MarlinFirmware#20469) * [cron] Bump distribution date (2020-12-15) * Fix formatting * Preheat before leveling * Always enable leveling after G28 * Trust that script -x flags will always be set (MarlinFirmware#20453) * Fix M1001 auto-check logic (MarlinFirmware#20456) * Auto-check followup * Please install the EditorConfig plugin * Fix RESTORE_LEVELING_AFTER_G28 (MarlinFirmware#20471) * Creality v4.5.3 (CR-6 SE, CR-6 MAX) (MarlinFirmware#20468) * Update some pins errors * Update some LCD includes * Trust STM32 gcc versions * [cron] Bump distribution date (2020-12-16) * Update Italian language (MarlinFirmware#20480) * Update Hungarian language Co-Authored-By: Zs.Antal <45710979+AntoszHUN@users.noreply.github.com> * Update French language (MarlinFirmware#20472) * [cron] Bump distribution date (2020-12-17) * Use homing_feedrate function * Homing feedrates as XYZ array (MarlinFirmware#20426) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * Fix ZoneStar LCD 2004 buttons (MarlinFirmware#20489) * Make M220 B / R a standard feature (MarlinFirmware#20355) * Balance CI tests (MarlinFirmware#20485) * Fix and optimize MightyBoard (MarlinFirmware#20493) * [cron] Bump distribution date (2020-12-18) * MKS Robin Nano V3 and STM32F4x0Vx Variant (MarlinFirmware#20430) * DOGM: Slow down touchscreen calibration (MarlinFirmware#20454) * [cron] Bump distribution date (2020-12-19) * Rename QUIET_PROBING * Tweaks for pins_BTT_SKR_common.h * [cron] Bump distribution date (2020-12-20) * Let boards set Default TMC Slave Addresses (MarlinFirmware#20498) Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Minimum temp options for Probing and G12 Nozzle Clean (MarlinFirmware#20383) Co-authored-by: Jason Smith <jason.inet@gmail.com> Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Probe Tare, Probe Activation Switch (MarlinFirmware#20379) Co-authored-by: Scott Lahteine <github@thinkyhead.com> Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com> Co-authored-by: Jason Smith <jason.inet@gmail.com> * Fix Creality EEPROM watchdog freq. (MarlinFirmware#20510) * Migrate Hispeedv1 (QQS-Pro) to HAL/STM32 (MarlinFirmware#20354) * Languages cleanup * Update Russian and Ukrainian languages (MarlinFirmware#20508) * Fix PIO typo * [cron] Bump distribution date (2020-12-21) * Get E3V2 DWIN `MACHINE_SIZE` from config (MarlinFirmware#20526) * Apply HOME_AFTER_DEACTIVATE for 'G28 O' (MarlinFirmware#20525) * Clean up some pins * Add BTT SKR CR6 board (MarlinFirmware#20522) * Fix G34 compile with bed leveling disabled (MarlinFirmware#20537) * Fix some Russian (MarlinFirmware#20529) * Robin pins followup * Tweak FTDI spacing * Add Tune -> Advanced Settings to FTDI EVE (MarlinFirmware#20532) * [cron] Bump distribution date (2020-12-22) * 12-bit ADC resolution for STM32 (MarlinFirmware#20519) * FTDI EVE custom user menus (MarlinFirmware#20518) * Improve STM32 timer conflict messages (MarlinFirmware#20544) * Fix UBL mesh inset Z position (MarlinFirmware#20538) * Overrides to prevent STM32 timer conflicts (MarlinFirmware#20545) * Improve Touch Calibration screen (MarlinFirmware#20524) * Creality v4.3.1 (Ender 6) board (MarlinFirmware#20512) * Anet ET4 / ET4P and Anet TFT28 / TFT35 (MarlinFirmware#20280) * STM32F1xx support for TFTGLCD (MarlinFirmware#20515) * Unify FYSETC F6 1.3 / 1.4 (MarlinFirmware#20507) Co-authored-by: Scott Lahteine <github@thinkyhead.com> * Fix G28 leveling state, UBL compile (MarlinFirmware#20499) * Support RGBW on PCA9632 (MarlinFirmware#20455) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * [cron] Bump distribution date (2020-12-23) * Refactor 'Level Corners with Probe' (MarlinFirmware#20460) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * Improve plan_arc circle detection (MarlinFirmware#20440) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * FTDI EVE: Cyrillic font, some minor fixes (MarlinFirmware#20517) * Enhanced Italian language (MarlinFirmware#20551) * Probe Activation Switch followup (MarlinFirmware#20550) * Support ANET_FULL_GRAPHICS_LCD_ALT_WIRING on BTT SKR 1.4 (MarlinFirmware#20427) * Apply ENABLED in ExiUI / FTDI * Remaining Time for FTDI EVE, bp for ExtUI (MarlinFirmware#20549) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * Add OPTIMIZED_MESH_STORAGE option (for UBL) (MarlinFirmware#20371) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * [cron] Bump distribution date (2020-12-24) * Move BTT_SKR_CR6 * LVGL and Classic UI for STM32 (MarlinFirmware#20552) * Add "End Repeat Loops" menu item * Fix DOGM status message scrolling (MarlinFirmware#20557) * Fix ST7920 timing for Rumba32, Fysetc S6 (MarlinFirmware#20556) * Fix, clean up FTDI EVE Touch UI (MarlinFirmware#20466) Co-Authored-By: Marcio T. <mlt4356-github@yahoo.com> * Apply NO_MOTION_BEFORE_HOMING to joystick motion (MarlinFirmware#20462) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * Cutter Power in percent format (MarlinFirmware#20410) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> Co-authored-by: Jason Smith <jason.inet@gmail.com> Co-authored-by: Luu Lac <45380455+shitcreek@users.noreply.github.com> * [cron] Bump distribution date (2020-12-25) * [cron] Bump distribution date (2020-12-26) * [cron] Bump distribution date (2020-12-27) * Fix SPINDLE_LASER_FREQUENCY (MarlinFirmware#20509) * Fix some comments * Remove CREALITY_TOUCH * Add probe_switch_activated * Init tare pin once * [cron] Bump distribution date (2020-12-28) * Validate defined probe points (MarlinFirmware#20572) * General cleanup * Allow define HOMING_FEEDRATE_(XY|Z) * Remove URL scheme * Small / Large Boot Screen option for TFT_COLOR_UI (MarlinFirmware#20578) * Better defaults, compatibility for SDIO + STM32 (MarlinFirmware#20570) * Fix Menu Mixer for Color UI (MarlinFirmware#20566) * Use ADC_RESOLUTION 12 for all STM32 (MarlinFirmware#20562) * Fix LVGL_UI G-code preview (MarlinFirmware#20564) * Fix Change Filament menu actions (MarlinFirmware#20565) Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> * Menu item index followup * [cron] Bump distribution date (2020-12-29) * Apply SHOW_BOOTSCREEN to TFT_COLOR_UI (MarlinFirmware#20586) * LVGL G-code preview. Legacy MKS WiFi Cura plugin compatibility (MarlinFirmware#20589) * Clarify sanity-check for custom status bitmap (MarlinFirmware#20588) * Pins, comment cleanup * USB FD via native USB Host + MSC (MarlinFirmware#20571) * Support 4.3" (480x272) Color UI display (MarlinFirmware#20334) * [cron] Bump distribution date (2020-12-30) Co-authored-by: Scott Lahteine <github@thinkyhead.com> Co-authored-by: Vitaliy <burkut_vit@mail.ru> Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com> Co-authored-by: Orel <37673727+0r31@users.noreply.github.com> Co-authored-by: thinkyhead <thinkyhead@users.noreply.github.com> Co-authored-by: Ajtak <ajtak.jakub@gmail.com> Co-authored-by: Kurt Haenen <Misterke@users.noreply.github.com> Co-authored-by: Kurt Haenen <Kurt.Haenen@quintux.com> Co-authored-by: Simone Primarosa <simonepri@outlook.com> Co-authored-by: Gurmeet Athwal <gurmeet.athwal@gmail.com> Co-authored-by: Jason Smith <jason.inet@gmail.com> Co-authored-by: qwewer0 <57561110+qwewer0@users.noreply.github.com> Co-authored-by: rdhoggattjr <64983896+rdhoggattjr@users.noreply.github.com> Co-authored-by: ellensp <ellensp@hotmail.com> Co-authored-by: pseudex <pseudaex@gmail.com> Co-authored-by: swissnorp <67485708+swissnorp@users.noreply.github.com> Co-authored-by: mks-viva <1224833100@qq.com> Co-authored-by: wmariz <11435639+wmariz@users.noreply.github.com> Co-authored-by: Štěpán Dalecký <36531759+daleckystepan@users.noreply.github.com> Co-authored-by: BsCmOD <64871957+BsCmOD@users.noreply.github.com> Co-authored-by: yysh12 <yysh12@users.noreply.github.com> Co-authored-by: Sergey1560 <53866542+Sergey1560@users.noreply.github.com> Co-authored-by: Thomas Niccolo Reyes <niccoreyes@gmail.com> Co-authored-by: Alexander D. Kanevskiy <kad@kad.name> Co-authored-by: Mathias Rasmussen <mathiasvr@gmail.com> Co-authored-by: Luu Lac <45380455+shitcreek@users.noreply.github.com> Co-authored-by: Belin Fieldson <thebelin@gmail.com> Co-authored-by: Tanguy Pruvot <tpruvot@users.noreply.github.com> Co-authored-by: mrv96 <marione96@live.it> Co-authored-by: InsanityAutomation <38436470+InsanityAutomation@users.noreply.github.com> Co-authored-by: LinFor <linfor@gmail.com> Co-authored-by: PingWin <kirill@shashlov.ru> Co-authored-by: ellensp <ellensp@ellensp-HP-ProBook-6470b.fritz.box> Co-authored-by: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com> Co-authored-by: Mike La Spina <mike.laspina@shaw.ca> Co-authored-by: Marcio T <mlt4356-github@yahoo.com> Co-authored-by: Sebastiaan Dammann <sebastiaandammann@outlook.com> Co-authored-by: ellensp <ellensp@hotmsil.com> Co-authored-by: elasticdotventures <35611074+elasticdotventures@users.noreply.github.com> Co-authored-by: FanDjango <51046875+FanDjango@users.noreply.github.com> Co-authored-by: FanDjango <FanDjango@users.noreply.github.com> Co-authored-by: leodoener <leodoener@gmail.com> Co-authored-by: Chris Pepper <p3p@p3psoft.co.uk> Co-authored-by: kisslorand <50251547+kisslorand@users.noreply.github.com> Co-authored-by: JoAnn Manges <joannmanges@gmail.com> Co-authored-by: Giuliano Zaro <3684609+GMagician@users.noreply.github.com> Co-authored-by: Zs.Antal <45710979+AntoszHUN@users.noreply.github.com> Co-authored-by: rafaljot <rafal@jastrzebscy.org> Co-authored-by: nb-rapidia <43864438+nb-rapidia@users.noreply.github.com> Co-authored-by: grauerfuchs <42082416+grauerfuchs@users.noreply.github.com> Co-authored-by: Foxies <Foxies-CSTL@users.noreply.github.com> Co-authored-by: Serhiy-K <52166448+Serhiy-K@users.noreply.github.com> Co-authored-by: Dick Streefland <dick@streefland.net> Co-authored-by: cr20-123 <66994235+cr20-123@users.noreply.github.com> Co-authored-by: X-Ryl669 <boite.pour.spam@gmail.com> Co-authored-by: Sean McGroty <sean@darkon.net> Co-authored-by: Jan Krajdl <spm@spamik.cz> Co-authored-by: Darren Peter <killallthehumans@gmail.com> Co-authored-by: ubik2 <ubik2@users.noreply.github.com> Co-authored-by: Vi B-P <violetbp@eecs.umich.edu> Co-authored-by: Ashammaru <xgxede@gmail.com>
When building for AVR, merge-all-constants can incorrectly combine constants stored in flash with constants stored in RAM. These have different access requirements, leading to undefined behavior during execution. Co-authored-by: ellensp <ellensp@hotmail.com>
When building for AVR, merge-all-constants can incorrectly combine constants stored in flash with constants stored in RAM. These have different access requirements, leading to undefined behavior during execution. Co-authored-by: ellensp <ellensp@hotmail.com>
When building for AVR, merge-all-constants can incorrectly combine constants stored in flash with constants stored in RAM. These have different access requirements, leading to undefined behavior during execution. Co-authored-by: ellensp <ellensp@hotmail.com>
When building for AVR, merge-all-constants can incorrectly combine constants stored in flash with constants stored in RAM. These have different access requirements, leading to undefined behavior during execution. Co-authored-by: ellensp <ellensp@hotmail.com>
When building for AVR, merge-all-constants can incorrectly combine constants stored in flash with constants stored in RAM. These have different access requirements, leading to undefined behavior during execution. Co-authored-by: ellensp <ellensp@hotmail.com>
The weird thing is that the behavior (merging matching strings and constants) is enabled as a default part of common optimization levels. So, presumably the explicit flag is doing something extra. In our case, it was not causing an extra "constant optimization" but ended up intruding into variable territory, and not even in a case of assigning from a constant. I'll feel better when they fix the issue, because who knows if it only crops up with the compiler flag. |
When building for AVR, merge-all-constants can incorrectly combine constants stored in flash with constants stored in RAM. These have different access requirements, leading to undefined behavior during execution. Co-authored-by: ellensp <ellensp@hotmail.com>
When building for AVR, merge-all-constants can incorrectly combine constants stored in flash with constants stored in RAM. These have different access requirements, leading to undefined behavior during execution. Co-authored-by: ellensp <ellensp@hotmail.com>
When building for AVR, merge-all-constants can incorrectly combine constants stored in flash with constants stored in RAM. These have different access requirements, leading to undefined behavior during execution. Co-authored-by: ellensp <ellensp@hotmail.com>
Description
When the flag
-fmerge-all-constants
is enabled, gcc will ignore the variable storage when merging constants. For example: it will think that one const var stored on PROGMEM and another const variable not stored in PROGMEM are equal, joining the two in one, and storing in out of PROGMEM. But the code that reads a global var is different from the code that read a PROGMEM var.Sample:
With that flag enabled, GCC will ignore that the first var is stored on PROGMEM and merge both, storing on global var area. But, to read
Foo
, we usepgm_read_
, and the other no. It will lead to reading dirty on flash.Result: subtle and hard to track bugs.
We just found it today, because the recent additions of
M115_GEOMETRY_REPORT
added this const var:That is merged with this, from soft endstops:
Making the soft endstops don't work when using it with
M115_GEOMETRY_REPORT
.I added some logging, to get the address of
dmin
,dmax
,base_min_pos_P
, andbase_max_pos_P
.As you see, both point the the same address! But one we access directly, the other we try to read from PROGMEM. It leads to read PROGMEM on the address of a global var, making the code just read dirty.
A big thanks for @ellensp that found that M115_GEOMETRY_REPORT was messing up with soft endstops in the #20370 issue!! I would never think about that when testing!!
And another bug thanks for @coolcheat that patiently did a lot of tests for us!
The impact of this fix is minimal. With a very full featured config, it only increase 768 bytes of flash usage.
Benefits
Fix #20370
May fix a lot of subtle bugs and random behaviours that we aren't aware!
Configurations
Easy reproducible on atmega 2560 with
M115_GEOMETRY_REPORT
and softendstops. Just boot and send aM211
and you will see random values on soft end stop values.The problem don't happen on STM32F1 (tested in nano v2 board).