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.

[参考译文] MSP430FR6989:写入存储器

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/932016/msp430fr6989-writing-to-memory

器件型号:MSP430FR6989

尊敬的:  

此主题在第一个主题(https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/931471)之后出现、但有另一个问题。  

我无法写入存储器(但我可以从中读取)。  

代码为:  

#if defined (__TI_Compiler_version__)|| defined (__IAR_systems_icc_)
#pragma vector=PORT3_vector
__interrupt void Port_3 (void)
#elif defined (__GNU__)
void __attribute__((interrupt (PORT3_vector)))) Port_3 (void

编译器#else 不支持!
#endif
{
/*
* 4个可用 RAM 段:
* 1. D --> 1800h '到187Fh
* 2. C -> 1880h '到18FFh
* 3. b --> 1900h '直至187Fh
* 4. a --> 1980h '直到19FFh
*
uint16_t volatile * address =(uint16_t *) getAddress ();

//读取

if (!(P3IN & BIT0)){//读取
P2DIR &= 0x00;//置于读取模式
*地址= P2IN;//->这里的故障无法写入内存
P3OUT |= BIT2;
}
//写入
否则{
P2DIR |= 0xFF;//置于写入模式
P2OUT &= 0x00;
P2OUT |=*地址;
P3OUT |= BIT2;//将 ACK 设置为1
P4DIR |= BIT0;
P4OUT |= BIT0;
}

while (!(P3IN & BIT1)){//在 Trigger (3.1)仍然为高电平时不执行任何操作
__no_operation();
}

P2DIR &= 0x00;
P3OUT =~BIT2;

P3IFG=0;//将所有标志设置为0

} 

我要写入上述(在代码中)部分的位置。 地址是正确的(因为我能够读取这些地址、并且还通过调试器进行检查)。 但是、我无法对其进行写入(如果您想知道我是如何对其进行测试的、请参考上述对其进行说明的线程、但请放心、它是通过多种方式进行测试的)。  

在我已启用的设置(在属性-> CCS 常规-> MPU 中)中、"手动指定存储器..." 并将信息存储器放在 R 和 W 上  

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

    您能否发布 MPU 设置选项卡的屏幕截图? 也许有人会看到一些东西。 [使用回形针左侧的"插入/编辑介质"。 有时只能粘贴图像。]

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

    询问的屏幕截图:

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

    第1段和第2段可能需要选中"X"框。 链接器几乎肯定会在那里放置至少一些代码。

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

    似乎已经解决了!! 谢谢!