Contact me: hankecnc@gmail.com

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39

推推 grbl 3年前 (2023-02-06) 382次浏览
打开
fluppie 打开了这个问题 2019 年 10 月 12 日 · 21条评论
打开

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏#39

fluppie 打开了这个问题 2019 年 10 月 12 日 · 21条评论

评论

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39
松软的 评论了 2019 年 10 月 12 日  

旧信息,向下滚动到 EEPROM 导致问题的部分。

> Executing task in folder Marlin-2.0.x-SKR-Mini-E3-V1.2: C:\Users\Philippe\.platformio\penv\Scripts\platformio.exe run --environment STM32F103RC_bigtree_USB <

Processing STM32F103RC_bigtree_USB (platform: ststm32; framework: arduino; board: genericSTM32F103RC)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/genericSTM32F103RC.html
PLATFORM: ST STM32 5.6.0 > STM32F103RC (48k RAM. 256k Flash)
HARDWARE: STM32F103RCT6 72MHz, 48KB RAM, 256KB Flash
DEBUG: Current (stlink) External (blackmagic, jlink, stlink)
PACKAGES: toolchain-gccarmnoneeabi 1.70201.0 (7.2.1), framework-arduinoststm32-maple 1.10000.190819 (1.0.0), tool-stm32duino 1.0.1
Converting Marlin.ino
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
LibraryManager: Installing U8glib-HAL
Using cache: C:\Users\Philippe\.platformio\.cache\a7\b7a9b473d1c239d9843ca943887cd0a7
Unpacking...
FileNotFoundError: [Errno 2] No such file or directory: 'c:\\Users\\Philippe\\OneDrive\\3D Printing\\BigTreeTech\\BIGTREETECH-SKR-mini-E3-master\\firmware\\V1.2\\Marlin-2.0.x-SKR-Mini-E3-V1.2\\.pio\\libdeps\\STM32F103RC_bigtree_USB\\_tmp_installing-gi1a573m-package\\U8glib-HAL-bugfix\\src\\clib\\HAL_example_files\\LCD_I2C_routines.c.example':
  File "C:\Users\Philippe\.platformio\penv\lib\site-packages\platformio\builder\main.py", line 126:
    env.SConscript("$BUILD_SCRIPT")
  File "C:\Users\Philippe\.platformio\packages\tool-scons\script\..\engine\SCons\Script\SConscript.py", line 605:
    return _SConscript(self.fs, *files, **subst_kw)
  File "C:\Users\Philippe\.platformio\packages\tool-scons\script\..\engine\SCons\Script\SConscript.py", line 286:
    exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
  File "C:\Users\Philippe\.platformio\platforms\ststm32\builder\main.py", line 91:
    target_elf = env.BuildProgram()
  File "C:\Users\Philippe\.platformio\packages\tool-scons\script\..\engine\SCons\Environment.py", line 224:
    return self.method(*nargs, **kwargs)
  File "C:\Users\Philippe\.platformio\penv\lib\site-packages\platformio\builder\tools\platformio.py", line 122:
    _build_project_deps(env)
  File "C:\Users\Philippe\.platformio\penv\lib\site-packages\platformio\builder\tools\platformio.py", line 47:
    project_lib_builder = env.ConfigureProjectLibBuilder()
  File "C:\Users\Philippe\.platformio\packages\tool-scons\script\..\engine\SCons\Environment.py", line 224:
    return self.method(*nargs, **kwargs)
  File "C:\Users\Philippe\.platformio\penv\lib\site-packages\platformio\builder\tools\piolib.py", line 1043:
    project.install_dependencies()
  File "C:\Users\Philippe\.platformio\penv\lib\site-packages\platformio\builder\tools\piolib.py", line 878:
    lm.install(uri)
  File "C:\Users\Philippe\.platformio\penv\lib\site-packages\platformio\managers\lib.py", line 359:
    force=force)
  File "C:\Users\Philippe\.platformio\penv\lib\site-packages\platformio\managers\package.py", line 701:
    track=True)
  File "C:\Users\Philippe\.platformio\penv\lib\site-packages\platformio\managers\package.py", line 483:
    self.unpack(dlpath, tmp_dir)
  File "C:\Users\Philippe\.platformio\penv\lib\site-packages\platformio\managers\package.py", line 218:
    return fu.unpack(dest_dir, with_progress=False)
  File "C:\Users\Philippe\.platformio\penv\lib\site-packages\platformio\unpacker.py", line 118:
    self._unpacker.extract_item(item, dest_dir)
  File "C:\Users\Philippe\.platformio\penv\lib\site-packages\platformio\unpacker.py", line 38:
    self._afo.extract(item, dest_dir)
  File "C:\Users\Philippe\AppData\Local\Programs\Python\Python37\lib\zipfile.py", line 1599:
    return self._extract_member(member, path, pwd)
  File "C:\Users\Philippe\AppData\Local\Programs\Python\Python37\lib\zipfile.py", line 1670:
    open(targetpath, "wb") as target:
=============================================================================================== [FAILED] Took 1.30 seconds ===============================================================================================

Anyone an idea why?
将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39
作者

好的,这个可以编译并与连接到 Z-endstop 标头的 BL Touchv3.1 一起使用。

https://github.com/fluppie/WORKING_Marlin-2.0.x-SKR-Mini-E3-V1.2-BLTouchv3.1

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39

首先尝试在 OneDrive 之外编译 FW,这会导致很多奇怪的问题。此外,您的完整路径大约有 270 个字符长,请尝试将其变小 – 类似于 C:\Marlin.pio\ – 应该不错;)
最后,如果这不起作用,请尝试在https://上克隆新的 Marlin github.com/MarlinFirmware/Marlin/tree/bugfix-2.0.x
….修改配置,编译,你就完成了;)

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39
作者

是的,你是对的。OneDrive 内部给出了大问题。我切换到 Documents\Github… 并解决了问题。我还以管理员身份运行 VS Code,以确保我在编译期间拥有足够的权限。
这个叉子目前只有 EEPROM 问题:https
://github.com/fluppie/BIGTREETECH-SKR-mini-E3 当将 Z 偏移保存到 EEPROM 时,固件损坏并且在断电后不再启动打印机。所以你需要重新烧写 MCU。

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39
库比克256 评论了 2019 年 10 月 14 日  

EEPROM 不起作用,因为 STM 芯片中没有物理 eeprom。
必须有两种方法:

1) SDCARD 上的 EEPROM
#define VIRTUAL_SD_EEPROM 8
在 SD 卡上放置名为“eeprom.dat”的空文件,它应该可以工作。

2) 基于闪存的 EEPROM 仿真
#define EEPROM_SETTINGS
#define FLASH_EEPROM_EMULATION // 使用基于闪存的 EEPROM 仿真

更多信息在这里:MarlinFirmware/Marlin#14684
…以及在带有 STM 芯片的 Marlin 上的许多其他线程中:)

我还没有测试任何 EEPROM 设置,明天我会测试两种方式。
祝你好运 ;)

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39

抱歉,忘了第一个,这是实验性的方式,需要比仅仅在 Configuration.h 中设置更多的调整,FLASH_EEPROM_EMULATION 应该可以工作。

我找不到在 SD 卡上初始化 EEPROM 的正确方法,但可能有一些方法。

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39
作者
松软的 评论了 2019 年 10 月 14 日  

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39 fluppie 更改了标题 无法使用 VS Code 和 PlatformIO 进行编译 将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 2019 年 10 月 14 日
将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39
作者

看起来这可能是解决方案:

如果您使用我的 STM32F103RE_bigtree_USB 版本;

您应该更改文件 pins_BIGTREE_SKR_E3_DIP.h

将第 38 行更改为
#define EEPROM_START_ADDRESS uint32(0x8000000 + 256 * 1024 – 2 * EEPROM_PAGE_SIZE)

至:
//#define EEPROM_START_ADDRESS uint32(0x8000000 + 256 * 1024 – 2 * EEPROM_PAGE_SIZE) //用于F103RC
#define EEPROM_START_ADDRESS uint32(0x8000000 + 256 * 2048 – 2 * EEPROM_PAGE_SIZE) //用于F103RE

然后闪存中的 eeprom 仿真将工作,它将位于 0x0807D000 而不是 0x0803EA00。
如果我们的构建大于 256KB-28KB-4KB = 224KB ,你只需要这样做
。如果使用 _USB,你可能需要它。

位于:MarlinFirmware/Marlin#15254

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39
作者

上述更改似乎对我有用。启用 BL Touch 后,构建大小为 226 KB,大于规定的 224 KB。值得注意的是,我的 CPU 是 256KB 的,RCT6。

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39

您可以尝试
激活#define SLIM_LCD_MENUS

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39

BLTOUCH 仅适用于 AUTO_BED_LEVELING = EEPROM MAX 224Kb = 229376 字节

  • 来自 Github 的 STOCK 固件 = 215764 字节
  • STOCK 配置构建(git 克隆和编译无更改)= 215156 字节

— platformio.ini —

  • 添加 lib_ignore = Adafruit NeoPixel(无差异)
  • 添加自定义构建参数 -328 字节

( -fno-tree-scev-cprop -fno-split-wide-types -finline-limit=3 -ffast-math )

— 配置.h —

  • #define BLTOUCH +5.472 字节

  • #define AUTO_BED_LEVELING_BILINEAR +7.736 字节

  • #define AUTO_BED_LEVELING_LINEAR +6.352 字节

  • 我们需要 #define Z_SAFE_HOMING +368 字节

  • 测试禁用//#define SDSUPPORT 构建失败

  • #define SLIM_LCD_MENUS -6.512 字节

  • #define SPEAKER +816 字节

  • 测试禁用 //#define CR10_STOCKDISPLAY(如果你不需要 [Octopi]) -38.520 字节

— Configuration_adv.h —

  • 禁用 //#define TMC_DEBUG -10.384 字节
  • 禁用 //#define EXTENDED_CAPABILITIES_REPORT DISABLE M115 -664 字节

注释
Marlin 2.0.x 中不再需要 TMC_DEBUG,但启用它会生成扩展报告

添加
#define VIRTUAL_SD_EEPROM 8

数据:[==] 21.9%(使用了 49152 字节中的 10752 字节)
程序:[========]80.2%(使用了 262144 字节中的 210276 字节)

适合 Flash :D 祝你好运

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39

看起来这可能是解决方案:

如果您使用我的 STM32F103RE_bigtree_USB 版本;
您应该将文件 pins_BIGTREE_SKR_E3_DIP.h
更改为
#define EEPROM_START_ADDRESS uint32(0x8000000 + 256 * 1024 – 2 * EEPROM_PAGE_SIZE)的第 38 行更改
为:
//#define EEPROM_START_ADDRESS uint32(0x8000000 + 256 * 1024ROM – PSAGE_USE 2 * ESIZE)对于 F103RC
#define EEPROM_START_ADDRESS uint32(0x8000000 + 256 * 2048 – 2 * EEPROM_PAGE_SIZE) //用于 F103RE
然后闪存中的 eeprom 仿真将工作,它将位于 0x0807D000 而不是 0x0803EA00。
如果我们的构建大于 256KB-28KB-4KB = 224KB ,你只需要这样做
。如果使用 _USB,你可能需要它。

位于:MarlinFirmware/Marlin#15254

更改 EEPROM_START_ADDRESS 对我有用。

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39

好的,这个可以编译并与连接到 Z-endstop 标头的 BL Touchv3.1 一起使用。

https://github.com/fluppie/WORKING_Marlin-2.0.x-SKR-Mini-E3-V1.2-BLTouchv3.1

在您的链接上收到错误 404。

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39

@Grayzone233看起来他更改了存储库,基于在此存储库中激活的提交 BLTouch v3.1:https ://github.com/fluppie/BIGTREETECH-SKR-mini-E3/commits/master

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39

@bojanpotocnik 正在寻找已编译的 bin 文件,但我可以从他在存储库中记录的内容中找到它。谢谢!唯一的垃圾箱是原始的,可以作为备份保存,以防编译后的文件不起作用。

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39

很高兴听到。此外,的 Marlin 分支还包含用于 BLTouch 配置的二进制文件。

如果编译不起作用。

如果您在使用机器上编译的 firmware.bin 启动电路板时碰巧遇到问题,请查看我们讨论解决方案的 MarlinFirmware/Marlin 问题 15767。

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39
作者

@bojanpotocnik正在寻找已编译的 bin 文件,但我可以从他在存储库中记录的内容中找到它。谢谢!唯一的垃圾箱是原始的,可以作为备份保存,以防编译后的文件不起作用。

有一个 bin 文件:https
://github.com/fluppie/BIGTREETECH-SKR-mini-E3/tree/master/firmware/V1.2 仅在刷入 FW 后检查/更改您的 E-steps。

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39
大卫古 评论了 2019 年 11 月 10 日  

在 Eeprom 仿真上更改开始写入点(更改 EEPROM_START_ADDRESS)后,它在使用 Eeprom 功能后不再崩溃,但似乎无法正常工作,我的意思是如果更改了一个值并在 Eeprom 保存后,重新启动后该值消失了,是吗为你们工作?

提前致谢

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39

我遇到过这个问题,但我的腐败发生在印刷中期。它只会停止打印。我对电路板进行了电源循环,但没有启动。重新加载固件后,我单击恢复故障安全默认值。我们会看看这是否有效。

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39

又那么做了。尝试通过 mattercontrol 运行打印。

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39

通过物质控制工作正常。我怀疑通过 sd 卡运行文件是在写入固件空间。

将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39
去毛刺 评论了 2019 年 11 月 18 日  

我根本无法让闪存 EEPROM 仿真工作。已尝试所有修复(更改起始地址等)。我能得到的最好结果是它不再崩溃,但我无法将任何值保存到(模拟的)EEPROM。我放弃并切换到 SD_EEPROM_EMULATION。意味着我必须在打印机中全天候 24/7 保留 SD 卡,但我通常会这样做,而且我通常不会从 SD 打印,所以我永远不会移除/更换 SD 卡。这意味着 SD 的写入次数更多,因此磨损得更快,但这对我来说并不重要,因为我会定期记录需要更改的 EEPROM 设置,而且我有大量的 SD 卡,因此可以随时切换到另一个。

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

没有分支机构或拉取请求

9人参加
将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39将某些内容存储到(虚拟)EEPROM(如 Z 偏移)时,固件会损坏 #39

喜欢 (0)