关闭 dresco 打开了这个问题 2021 年 3 月 12 日 · 2 条评论 关闭 STM32硬故障保存设置#1 dresco 打开了这个问题 2021 年 3 月 12 日 · 2 条评论 评论 德雷斯科 评论了 2021 年 3 月 12 日 我注意到我的 STM32F411 Nucleo 测试板在更新设置后出现硬故障。似乎是从这里来的; STM32F4xx/Src/flash.c 第 61 至 69 行 906d7b1 uint16_t *数据=(uint16_t *)来源; uint32_t地址 = ( uint32_t )flash_target,剩余 = ( uint32_t )hal。没有。尺寸; while (剩余 && 状态 == HAL_OK) { status = HAL_FLASH_Program (FLASH_TYPEPROGRAM_HALFWORD, address, *data++); status = HAL_FLASH_Program (FLASH_TYPEPROGRAM_HALFWORD, address + 2 , *data++); 地址 += 4 ; 剩余 -= 4 ; } nvs_alloc() 正在向 hal.nvs.size 添加一些额外的字节,使其不再能被 4 整除; hal.nvs.size = GRBL_NVS_SIZE + hal.nvs.driver_area.size + 1; 正因为如此,剩余永远不会达到 0(对我来说,它从 1034 开始,从 2 开始循环),并且闪存写入会继续进行,直到它大概运行在 eeprom 仿真区域之外。 我预计这也会影响 F1 和 F3 车手…… 贡献者 terjeio 评论了 2021 年 3 月 12 日 nvs_alloc() 正在向 hal.nvs.size 添加一些额外的字节,使其不再能被 4 整除; 额外的字节用于校验和。在 nvs_buffer_init() 的开头添加这一行 hal.nvs.size = ((hal.nvs.size - 1) | 0x03) + 1; 所以它变成: // // Switch over to RAM based copy. // Changes to RAM based copy will be written to physical storage when grblHAL is in IDLE state. bool nvs_buffer_init (void) { hal.nvs.size = ((hal.nvs.size - 1) | 0x03) + 1; if(nvsbuffer) { ... 应该为所有驱动程序修复它。 作者 德雷斯科 评论了 2021 年 3 月 12 日 谢谢,我在 nvs_alloc() 中添加了这一行,就在现有大小调整之后,它看起来不错(大小四舍五入到 1036 并且没有错误).. hal.nvs.size = GRBL_NVS_SIZE + hal.nvs.driver_area.size + 1; hal.nvs.size = ((hal.nvs.size - 1) | 0x03) + 1; terjeio已完成 关闭 2021 年 4 月 30 日 喜欢 (0) 是否可以在 GUI 上自定义辅助输出开关的名称? #271 Y 限位开关未正确读取 #2 编译时警告 #7 2209 和编译问题 #6 驱动程序 LPC176x 我无法使用 mcuxpresso ide 进行编译 #4 反转 A/B(联动 y)步进启用引脚? #3 编译时警告 #72209 和编译问题 #6驱动程序 LPC176x 我无法使用 mcuxpresso ide 进行编译 #4反转 A/B(联动 y)步进启用引脚? #3无串行访问 #2编译问题,可能的 makefile 导出分支? #1GRBL/UGS 问题,已知硬件可以工作,但没有运行 Grbl 的步进运动XY 绘图仪 – 将 Word 文档转换为 GRBL 文件
我注意到我的 STM32F411 Nucleo 测试板在更新设置后出现硬故障。似乎是从这里来的;
STM32F4xx/Src/flash.c
第 61 至 69 行 906d7b1
nvs_alloc() 正在向 hal.nvs.size 添加一些额外的字节,使其不再能被 4 整除;
hal.nvs.size = GRBL_NVS_SIZE + hal.nvs.driver_area.size + 1;
正因为如此,剩余永远不会达到 0(对我来说,它从 1034 开始,从 2 开始循环),并且闪存写入会继续进行,直到它大概运行在 eeprom 仿真区域之外。
我预计这也会影响 F1 和 F3 车手……