主题中讨论的其他器件: MSP430G2553
工具与软件:
我有一个 MSP-EXP430G2ET 评估板、并且无意中删除了校准表。 我下载了 msp430x21x2_DCO_flashcal.s43、并尝试运行它、但 LOCKA 未在任何位置定义。 如何重新校准处理器?
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.
工具与软件:
我有一个 MSP-EXP430G2ET 评估板、并且无意中删除了校准表。 我下载了 msp430x21x2_DCO_flashcal.s43、并尝试运行它、但 LOCKA 未在任何位置定义。 如何重新校准处理器?
1) 1)您知道常数是如何从一开始被擦除的吗? 我不知道您是否计算并存储了常量、但是之后再次将它们擦除。 我忘记了 IAR 的工作方式、但是 CCS 提供了"Project->Properties->Debug->MSP430 Flash Settings->Erase Options"、其中之一是 "Erase main、information、and protected information memory"、这是可以意外选择的。 此外、BSL 也使得意外擦除常量变得十分容易。
2) 2)开箱即用、G2ET Launchpad 不连接32kHz 晶体。 R5和 R7上的焊接桥可以解决这个问题。 (您可以移除 R3/R9上的0欧姆电阻、或者只承诺不要将任何东西连接到 P2.6/.7引脚。) 如果没有晶体、则会生成错误的常量、但我不希望出现0xFF。
3) 3)我建议您先从 G2553为例、而不是从 F21x2开始。 我在后者中看到的唯一"魔术常量"是栈指针、我认为它会(意外)起作用、但为了避免这个问题会更容易。 并且/或者切换到 C 程序而不是汇编程序(这样、构建系统就可以为你做得更好)。
您可能需要特别在拔出新板之前整理(1)、否则您可能会发现自己与新板处于相同的位置。
我想到的是这个(msp430g2xx3_DCO_flashcal.c):
https://dev.ti.com/tirex/explore/node?node=A__AFMTmvVTDg38Cm2Bz0SZEQ__msp430ware__IOGqZri__LATEST
简单看一下、我希望它能与 IAR 配合使用。
我已经使用这个程序数年(包括那些我意外地重新擦除他们之后)。
[编辑:我现在明白了"更好的示例代码"的意思了。 以下是一个示例(msp430g2xx3_flashwrite_01.c):
https://dev.ti.com/tirex/explore/node?node=A__AM00PDEdsVyGemKvLOkiSg__msp430ware__IOGqZri__LATEST
这只适用于 C 段和 D 段、而常数位于 A 段。只要你从不触摸 LOCKA、你应该没有问题。]
[编辑(2):我更仔细地看了,这个程序设置 LOCKA=0没有好的理由(" FCTL3 = FWKEY ;"),即使它只适用于 Segs C 和 D。我不知道作者在这里有什么想法,但我不推荐它。 没关系、这实际上只是正常的。]