Other Parts Discussed in Thread: MSP430FR6989
您好!
我目前正在处理 PMM32勘误表的权变措施。 如数据表中所示、我实现了该解决方案
我现在看到的是、在断电时、器件不再工作。 可能 RAM 中的数据丢失。
我想在系统启动时将函数从 FRAM 复制到 RAM、以消除这种行为。
如何使用 TI 工具链在 FRAM 器件上实现此操作?
在这种情况下、我必须如何声明函数和链接器命令文件的位置?
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.
Other Parts Discussed in Thread: MSP430FR6989
您好!
我目前正在处理 PMM32勘误表的权变措施。 如数据表中所示、我实现了该解决方案
我现在看到的是、在断电时、器件不再工作。 可能 RAM 中的数据丢失。
我想在系统启动时将函数从 FRAM 复制到 RAM、以消除这种行为。
如何使用 TI 工具链在 FRAM 器件上实现此操作?
在这种情况下、我必须如何声明函数和链接器命令文件的位置?
PMM32勘误表指出、将用于将芯片设置为睡眠模式的函数放置在 RAM 中(MSP430fr6989上为2KB)
我这么做了:
#pragma CODE_SECTION (processSlepState、".TI.ramfunc")
空 处理器睡眠状态(sleepState_t sleepState)
{
/***** 解决方法 PMM32 *******
FRCTL0 = FRCTLPW;
GCCTL0 &=~Ω(FRPWR+FRLPMPWR);//清除 FRPWR 和 FRLPMPWR
FRCTL0_H = 0;//重新锁定 FRCTL
//********
_bis_SR_register (sleepState);
__no_operation();
}
在链接器命令文件中、我执行了以下操作:
#define RAM_CODE_BEGIN 0x1C60
#define RAM_CODE_LENGTH 0x0020
#define RAM_CODE_END = RAM_CODE_BEGIN + RAM_CODE_LENGTH
存储器
{
(笑声)
RAM_legal_code :origin = RAM_CODE_BEGIN,length = RAM_CODE_LENGTH // 28.
(笑声)
}
部分
{
(笑声)
.TI.ramfunc:{}> RAM_legal_code
(笑声)
}
我不知道芯片做什么、但我认为这个函数直接放置在 RAM 中、当发生功率损耗时、该函数就会消失。 对吗?
如果是、我现在要将此函数放置在 FRAM 中、并在系统启动时将其复制到 RAM 中并在那里执行。
这是可能的、还是我的假设是错误的? 这是如何实现的?