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.

[参考译文] MSP430FR5962:编程咨询

Guru**** 2120640 points
Other Parts Discussed in Thread: MSP430FR5962
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1459012/msp430fr5962-programming-consultation

器件型号:MSP430FR5962

工具与软件:

大家好!

我最近一直在对 MSP430FR5962进行编程、我有一个问题:对代码进行编程后、有两个函数可用于读取数据进行验证(ReadMemQuick 和 ReadMem)。

如果使用 ReadMem 读取主闪存、则编程的数据始终与读回数据匹配、无论读取多少次。 但是、使用 ReadMemQuick 时、主闪存数据与前几次读取相匹配、但在多次读取后、数据会发生变化。

我想了解发生了什么。 您能否解释一下是否有任何不同之处、或者您对此有什么建议?

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tsai、您好!

    您能否详细说明如何使用这些函数、例如您使用什么接口来从器件中读取数据以及这些函数在哪里运行?

    目前、我不清楚这些函数在执行什么操作、或者您在哪里找到了这些函数、所以我无法告诉您它们执行什么或为什么在多次读取后数据会发生变化。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Dylan:

    感谢您的答复

    按照源代码(slau320aj.zip)中引用的编程步骤、我使用了 JTAG 接口和我自己的工具对此芯片进行编程。 在测试过程中ReadMem,我注意到当使用时,回读数据始终与编程数据匹配ReadMemQuick,但与,它只在开始时匹配,并且在多次读取后,数据会意外变化。 这种行为是否表明ReadMem验证更可靠? 您是否建议使用ReadMem OVERReadMemQuick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您为此使用的是定制 JTAG 工具吗? 您是否曾在不同的 JTAG 工具(例如 SLAU320文档中提到的工具之一)上尝试过相同的操作?

    我可以看到、对您提到的函数的描述只是启动读取、然后返回它读取的值、在函数流程中我看不到任何写入发生。

    我建议您尝试探测信号、以确保工具和设备之间的通信符合您的预期、如果是、我还建议您尝试仔细检查 readMemQuick 函数返回的数据、以查看存储器中是否实际发生变化。  

    请告诉我您可以在这里找到什么。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Dylan:

    再次感谢您的答复!  

    我在读取前对闪存进行了写入、所有函数都是按照 SLAU320源代码执行的、并且我已经确认 JTAG 通信正常工作。 我还有 MSP430-FET 闪存仿真工具、我将用它来协助验证。

    readMemQuick函数返回的数据实际上会在存储器中发生变化、但在使用该readMem函数时不会发生此问题。

    这种行为是否表明readMem验证更可靠? 您是否建议使用readMem而不是readMemQuick

    感谢您的帮助!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tsai、您好!

    我还不能查看它的源代码、但它听起来像是使用 readMemQuick、其中有一些正在改变存储器的错误。 说明中没有任何内容表明它应该会改变您的内存。  

    由于我们不计划提供此工具的更新、我建议您避免使用 readMemQuick、或者如果您正在编辑源代码、您可以尝试自行修复它、但考虑到您具有此功能、此活动可能不值得您花时间进行。

    如果您还有其他关于此主题的问题、请告诉我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Dylan:

    再次感谢您的答复!  

    在执行擦除和空白检查操作后、我写入了主闪存并使用该ReadMemQuick函数进行回读。

    所有操作均通过 SLAU320源代码中的函数(不仅仅是读取函数)来执行。

    我在输出窗口中打印了返回的数据、您可以看到、数据在多次尝试读取后会发生变化。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    第一幅图显示了使用从芯片读取的正确数据 ReadMemQuick 立即运行。 但是、在使用读取多次之后 ReadMemQuick 、数据会更改、如第二幅图像所示。 数据更改后、将无法再读取正确的值。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tsai、您好!

    我建议您只需使用这里的 ReadMem 函数、而不是出现损坏的 ReadMemQuick 函数。 考虑到您正在使用自定义工具、如果您希望修复、可能需要重新评估执行该函数的确切操作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Dylan:

    再次感谢您的答复

    所以、问题似乎在于此 ReadMemQuick 、对吗? 含义的详细信息 ReadMem() 可能是更好的读取方法?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Dylan:

    我的问题是否有任何更新?

    非常感谢   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tsai、您好!  

    为延误道歉-我已经不在办公室,我在一周的剩余时间。

    为了回答您的问题、我会说是的、问题似乎在 ReadMemQuick 函数中、并且 ReadMem 似乎工作效率更高。 要完全清楚、这完全基于您对问题的描述:由于您使用的是自定义工具和实施、因此我只能根据您提供的信息进行评估。

    话虽如此、您已在此处发布的证据似乎确实表明 ReadMemQuick 函数不起作用、并且会无意中更改数据、而 ReadMem 函数可正确读取数据。