完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
STL 库配置为一次测试多个扇区(每个 128kByte)。
我们的使用模型与 ST 提供的 Nucleo 参考项目紧密相关,该参考项目用于帮助集成 STL 库;我们正在该包中使用 IAR 项目。 截至今天,我们的代码使用了 3 个扇区(2 个完整扇区和一个部分扇区)。 Flash 测试(通过 STL_SCH_RunFlashTM API)在前 2 个扇区运行良好,但总是在第 3 个扇区失败。 事实证明,这是因为 ST 提供的 CRC 表生成器实用程序(使用选项 -sl 调用的 STM32_Programmer_CLI.exe)不会在第 3 个扇区内使用中内存的最后一个字节之后生成 CRC。 为了解决这个问题,我使用了 IAR IDE 中内置的内存填充选项,以强制填充到已知模式,而不是 0xFF。 当我尝试将调试构建加载到目标中时,这会导致 IAR IDE 抛出“多个图像重叠”错误。 附件“ELF-map.txt”显示了准确的错误消息和 ELF 查看器的输出。 在文件底部的第三个日志中可以清楚地看到重叠。看起来 CRC 表生成器实用程序为每个程序部分的 32 位对齐做了一些填充,可能会侵占下一个部分。 你有什么建议? 在调用 CRC 表生成器实用程序之前加入 2 个段 A0 和 Fill1? 其他? 注意:该问题仅与 IDE 加载到目标中的 ELF 文件有关。如果我通过 STM32CubeProgrammer 在 IDE 外部下载调试 *.bin 文件,我可以实现 100% 的覆盖率(所有 3 个扇区)。我正在考虑由 IDE 与 ELF 文件一起生成的 *.bin 文件。 |
|
相关推荐
1个回答
|
|
|
当代码未与 32 位字对齐时,我确认这是一个已知问题。这是一个由 STL 硬编码的基本块。如果你参考你应该收到的带有 STL 的固件用户手册,CRC 计算的前提条件在“闪存测试”一章中有描述,特别是其中写道“用户程序的边界必须是 32 位对齐”。
图像之间重叠的根本原因是,当代码未按字对齐时,STM32CubeProgrammer 使用零自动填充,同时它忽略了编译器提供的 ELF 文件的其他部分,这些部分保留有关通过预定义模式自动填充内存间隙的信息。 避免此类问题的解决方案是在调用 ST CRC 计算工具之前确保代码的 32 位对齐,以避免 STM32CubeProgrammer 自动填充。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
stm32mp157的异核通信的rpmsg_sdb的m4固件和a7驱动该如何编写?
1454 浏览 0 评论
stm32f103用freertos对一个采样率为1kHz的传感器,进行采样,数据出差
1503 浏览 0 评论
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
3650 浏览 1 评论
3842 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
2461 浏览 1 评论
STM32H7打开DCache后,出现了串口接收信息为空的现象,是哪里出了问题?
728浏览 5评论
用NANO STM32F103RBT6的开发板烧录不了是哪里出了问题?
663浏览 5评论
710浏览 5评论
外部中断触发类型为双边沿触发,进入中断回调后有什么办法判断该边沿是上升沿还是下降沿?
941浏览 5评论
STM32L071CBT6低温环境下无法正常工作是什么原因引起的?
745浏览 5评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 18:28 , Processed in 0.712527 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
403