Other Parts Discussed in Thread: UNIFLASH
主题中讨论的其他器件:UNIFLASH
您好!
我已成功从 C28内核复制闪存、对其进行了修改并重新安装以测试我的代码。 我无法使用 M3内核执行此操作。 我可以复制并重新安装它、但任何修改的版本都不会安装。 UniFlash 成功完成、但随后验证失败。 当我检查内存时、它是空白的。 是否有其他一些验证没有提示地失败?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Other Parts Discussed in Thread: UNIFLASH
您好!
我已成功从 C28内核复制闪存、对其进行了修改并重新安装以测试我的代码。 我无法使用 M3内核执行此操作。 我可以复制并重新安装它、但任何修改的版本都不会安装。 UniFlash 成功完成、但随后验证失败。 当我检查内存时、它是空白的。 是否有其他一些验证没有提示地失败?
我将使用版本5.0.0的 Uniflash for Linux。
安装我的二进制文件时没有错误、但验证失败。
瑞吉斯
1) 1)当您在存储器视图中查看故障地址时、是否看到预期值? 请检查。 如果该值不符合预期、则我们知道 UniFlash 为什么会给出错误。
2) 2)您能否检查 UniFlash GUI 中是否禁用了"在程序加载/闪存操作后运行目标"选项(选择和加载映像)? 如果未禁用(默认应禁用)、请禁用并尝试验证。 这可确保在尝试执行验证操作时器件不会开始执行。
您没有确认是否在闪存中编辑了任何 DCSM 设置。 您可以检查并确认吗? 如果闪存已锁定、除非器件已解锁、否则 UniFlash 将无法验证。
谢谢、此致、
Vamsi
感谢你的帮助。
1) 1)当您在存储器视图中查看故障地址时、是否看到预期值? 请检查。 如果该值不符合预期、则我们知道 UniFlash 为什么会给出错误。
我希望数据所在的地址为空
2) 2)您能否检查 UniFlash GUI 中是否禁用了"在程序加载/闪存操作后运行目标"选项(选择和加载映像)? 如果未禁用(默认应禁用)、请禁用并尝试验证。 这可确保在尝试执行验证操作时器件不会开始执行。
它已禁用
您没有确认是否在闪存中编辑了任何 DCSM 设置。 您可以检查并确认吗? 如果闪存已锁定、 除非 器件已解锁、否则 UniFlash 将无法验证。
闪存未锁定。
我能够安装并验证我的"基线"二进制文件、但当我将一个字节从0xE5更改为0x66时、它不会验证。
我希望这是有道理的。 该方法在 C28内核和我测试过的 piccolo 微控制器上工作正常。
谢谢
瑞吉斯
为了澄清这一点、您要将二进制文件(.bin)加载到 M3内核? (与十六进制或.out 文件相对)
如果您加载基准二进制文件、您可以正确加载它、但是如果您将基准文件中的一个字节从0xE5更改为0x66、它会停止正确加载、而是在加载后闪存为空?
如果要加载二进制文件、请确保在单击"Load Image"按钮和单击"Verify Image"按钮时的起始地址相同。 这可确保您正在加载并验证相同的位置。
谢谢、
Ricky
感谢您的帮助...
为了澄清这一点、您要将二进制文件(.bin)加载到 M3内核? (与十六进制或.out 文件相对)
正确。
如果您加载基准二进制文件、您可以正确加载它、但是如果您将基准文件中的一个字节从0xE5更改为0x66、它会停止正确加载、而是在加载后闪存为空?
正确。 UniFlash 表明已正确加载、没有错误、但在内存浏览器中的检查显示为空白、并且验证失败。
如果要加载二进制文件、请确保在单击"Load Image"按钮和单击"Verify Image"按钮时的起始地址相同。 这可确保您正在加载并验证相同的位置。
我使用与创建基线时相同的起始地址。 因此、我将文件名命名为起始地址。
瑞吉斯
您是否在 UniFlash 的设置和实用程序中启用了"编程后验证闪存"? 请检查并告知我。 启用此功能后、即使加载映像、验证操作也应失败。 否则、这意味着闪存工具不会对该位置进行编程。
为了帮助进一步调试、您能否生成并向我们发送调试服务器日志?
1) 1)配置设备
2) 2)转到"设置"菜单(右上角)
3) 3)转到"Debug Server Logging"部分、然后单击"Enable (启用)(记下生成日志的位置)
4) 4)立即加载程序。 它应该会如您所注意的那样通过(请保持 启用"程序后验证闪存")
5) 5)进行验证、它应该会如您所注意到的那样失败。
6) 6)获得错误对话框后、禁用日志记录并浏览到日志的位置
附加生成的日志、我们可以进行分析、以了解工具为什么不对该位置进行编程。
谢谢、此致、
Vamsi
瑞吉斯
感谢您生成日志。
您能为我运行以下实验吗?
1.下载随附的 test.bin。
2.在 UniFlash 控制台中打开"Verbose"。
3.将 test.bin 加载到地址0x208000
4.转到"Memory"视图并浏览到地址0x208000
5. 0x208000的值是否为“78563412”?
6.还提供您获得的控制台输出。
7.如果存储器视图中的值正确、请重复相同的测试、但使用之前加载的二进制文件。
如果您需要对任何步骤进行说明、请告诉我。
谢谢。
3.将 test.bin 加载到地址0x208000
完成
4.转到"Memory"视图并浏览到地址0x208000
5. 0x208000的值是否为“78563412”?
否-全部为零???
6.还提供您获得的控制台输出。
请参见下面的
我还进行了第二次运行、只需加载并验证...
瑞吉斯
感谢您试用该实验。
(1)您能否发送表1-30中给出的闪存地址的快照。 M3 Zone1 -闪存和 表1-31中的保留位置。 M3 Zone2 - TRM 闪存中的保留位置(http://www.ti.com/lit/ug/spruhe8d/spruhe8d.pdf)?)
全为0表示设备可能已锁定- Hence 请求发送上述快照。 这些位置与 TRM 中的安全配置有关。
(2)此外、在地址 0x00208000发送快照。
(3)请在 Settings & Utilities -> Cortex_M3_0 -> Download Settings 中启用"在将数据加载到闪存存储器之前执行空白检查"。
启用此选项后、加载并查看空白检查是否失败。 请告诉我们。
谢谢、此致、
Vamsi
我的测试日志如下。