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.

[参考译文] EVM430-F6779:如何在 MSP430F6779的第3组中写入和读取?

Guru**** 2524460 points
Other Parts Discussed in Thread: MSP430F6779

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/723294/evm430-f6779-how-to-write-and-read-in-falsh-bank-3-of-msp430f6779

器件型号:EVM430-F6779
主题中讨论的其他器件:MSP430F6779

我正在进行能量计项目、并尝试在闪存上写入和读取即时样本以记录样本数据。是否有人可以指导我在闪存组3中读取/写入。?我正在使用 IAR 嵌入式工作台?

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

    请查看此页面。 processors.wiki.ti.com/.../Placing_Variables_in_Specific_Memory_Location_-_MSP430

    此致、
    Andre
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我很清楚在信息闪存存储器中的写入...但是主代码存储器组3的写入情况... 它是一个24位地址。指针变量只能携带16位地址。那么我如何能够写入具有16-24位地址的存储器位置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    请检查以下 e2e 线程:
    e2e.ti.com/.../72969
    e2e.ti.com/.../66903

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

    您还有其他问题吗? 如果不是、请为解决您的问题的帖子选择"已解决"、以便关闭此主题。
    非常感谢!

    此致、
    Andre
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我可以通过某种方式写入主闪存(组3和组4)。但我对方法有点困惑。它是使用以下例程访问主闪存的正确方法。

    void flash_write_int32 (int32_t addr、int32_t 值)

    _dint();
    FCTL3 = FWKEY; /*锁定= 0 */
    FCTL1 = FWKEY | WRT;
    //*((int32_t *) ptr)=值; /*对闪存进行编程*/
    __data20_write_long (addr,value);
    _EINT();



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

    被擦除的闪存存储器位的逻辑值为1。 每个位可被单独设定为1至0、但是要从0至1重新编程、需要一个擦除周期。 因此、如果您写入例如0b0110、然后写入0b1111、它将保持在0b0110、因为您无法将0重新写入1、您需要将其擦除。 我之所以展示这一点、是为了让您知道在写入之前有一个擦除函数。

    请检查 MSP430F6779 (A)器件的代码示例"msp430f677xA_flashwrite_02.c"。
    dev.ti.com/.../

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

    我现在清楚写入闪存、但我面临擦除主闪存组3的新问题。
    每当我尝试擦除 BANK3 (批量擦除)时、处理器都会进行复位。每次都不会发生这种情况。 您能不能建议我正确擦除闪存。

    void MAIN_FLASH_Bank_CLR (Int32_t addr)

    _dint();
    FCTL3 = FWKEY; /*锁定= 0 */
    FCTL1 = FWKEY | MERAS;
    __data20_write_long (addr,0); /*擦除闪存段*/
    _EINT();



    我正在传递32位地址。
    例如:MAIN_FLASH_Bank_CLR (0x0004C000);


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

    是否禁用了看门狗? 也许您在擦除期间会收到一个看门狗事件...

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

    您好!

             不可以、看门狗不是禁用的、但我在 组擦除前后馈入看门狗寄存器(1秒看门狗计数器)。

    Nilesh  

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

    您好!

    如果要擦除组3、则需要使用存储器地址0x6C000h。 0x4C000h 是组2。

    Andre

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

    您好!  

         我已经更正了我的代码中的银行3地址、但该更改不足以解决我的问题、

    请建议我采取更好的方法。

    谢谢、

    Nilesh Motawala

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

    您是否在 CCS 中选择了正确的器件? MSP430F6779?
    您是否在编译器选项中使用大型数据模型?

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

    您对此主题还有其他疑问吗? 如果不是、请为解决您的问题的帖子选择"已解决"、以便关闭此主题。 如果您有其他问题、请选择"提出相关问题"或"提出新问题"。
    非常感谢!

    此致、
    Andre