请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C1294NCPDT 主题中讨论的其他器件:UNIFLASH
您好:
使用以太网引导加载程序下载大(>500k)映像时遇到问题。 在目标系统冻结之前、我将下载大约490个 TFTP 数据包。 我多次尝试此操作、每次都在相同的数据包计数下失败。 通过使用 UniFlash 查看闪存、可以看到闪存的第一个扇区已损坏。 我已在 bl_config.h 文件中将 APP_START_ADDRESS、VTABLE _START_ADDRESS 和 FLASH_PAGE_SIZE 设置为0x4000。 我还定义 了 FLASH_RSVD_SPACE。 定义了 FLASH_RSVD_space 并粗略地查看代码后、不应覆盖闪存中的引导加载程序映像。
我开始更深入地检查加载程序代码、然后进行了思考。 根据数据包数量、引导加载程序似乎在将映像刻录到闪存之前尝试下载总映像。 作为快速测试、我将引导加载程序堆栈大小更改为32k、并尝试了一次新的下载。 下载失败的数据包数量较少。 再次增大堆栈大小并减少数据包数量。
那么、我的问题是: "引导加载程序是这样设计的吗? 将整个映像下载到 SRAM 中?"。 或者是否存在一些错误、不允许系统重复使用现有的缓冲区。 感谢您对此问题的任何回答。