主题中讨论的其他器件:UNIFLASH、 C2000WARE
您好、专家:
F280025、Uniflash 无法 重置器件并在编程 hex 文件后运行、可以使用 out 文件重置器件、
但 在下载 hex 文件时无法重置和运行代码、这可能是一个错误、可以通过 TI c2000ware 示例复制、
您能帮助检查是否有任何问题吗?
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.
您好、专家:
F280025、Uniflash 无法 重置器件并在编程 hex 文件后运行、可以使用 out 文件重置器件、
但 在下载 hex 文件时无法重置和运行代码、这可能是一个错误、可以通过 TI c2000ware 示例复制、
您能帮助检查是否有任何问题吗?
尊敬的 Kier:
您可以使用以下示例代码在 F280025_launchpad 中重现此问题、LED 在下载出文件后闪烁、
但从不在下载 hex 文件后更改。
e2e.ti.com/.../6648.led_5F00_ex1_5F00_blinky.7z
我还在此处将 F28003x 文件发布到
十六进制生成是否有任何问题? [/报价]不,我不这么认为。 我检查了它与您的.out 文件的内容相同。
请发布您的 UniFlash 会话文件(.uniflash)
啊 现在、我可以重现您的问题。 请允许我邀请 TI 发表评论...
Ki 您好。 小
我认为这是几周前我在文章中报告的另一个问题的例子、但并没有深入到以下方面:
无论是 strong Zhang 的演示项目(launchxl_ex1_f280025c_demo)还是我今天尝试的等效示例(launchxl_ex1_f280039c_demo)、当所有其他内容相等时、.out 和.hex 文件的 UniFlash 行为确实存在差异。
仅.out 成功运行目标、但.hex 成功运行。 后者是我在上面原始帖子中的用例。
我向 dis2000进行了检查、发现.out 文件中没有额外的段在.hex 文件中缺失、无论如何、在刷写.hex 文件后循环启动 LaunchPad 确实可以运行程序。 此外、刷写.out 和.hex 的详细日志没有区别。
那么、您可以尝试复制该问题、从而解释为什么.hex 加载映像不会"运行目标"?
'Run Target'仅对.out 成功,但对.hex 不成功。 后者是我在上一篇文章中的使用案例。
我在 CCS 中尝试了这一点。 我加载生成的*。out 文件时、PC (程序计数器)设置为0x80000。 它将从此处禁用看门狗、然后跳转到应用的入口点(_c_int00)。 最终、它将运行到 main 以及其他指令中。
加载*。hex 文件时、PC 设置为0x0、然后在某处卡住。 执行断开连接、然后再连接、然后再次断开连接将导致程序按预期运行。 下电上电也会执行同样的操作。
输出文件中的符号将包含十六进制文件中缺少的程序入口点位置和其他调试符号信息。
我想我不确定这是否是预期行为。 或许 C2000团队的某个人可以发表意见。
谢谢
小
重置 LOA 后 CPU 重置的操作
非常感谢。 该权变措施对我来说是有效的。
加载*。hex 文件时,PC 设置为0x0
您终于找到了根本原因、非常感谢。 这已经困扰了我很多年了!
这种差异的一种可能解释是标签"code_start"闪存入口点(0x80000)仅存在于.out 文件中。 话虽如此、可以假设闪存入口点90%的时间为0x80000 (在 F28003x 和其他情况下)、因为它是器件的一个特性:

也许可以用 UniFlash 增强功能在"Run target"旁边的 UniFlash GUI 中键入闪存入口点地址(与会话文件保存)、以使此行为对于十六进制文件用户而言是透明的并可控的? 对于.out 文件、此框可变灰、内容将替换为"code_start"地址。
模拟:
