当执行FRAMWrite_uint64((uint64_t *)FRAM_RECORD_ADDRESS,0); 时,后20*4会被修改为0
原来0xffffffff,0xffffffff,被改为0x0000ffff,0x00000000
当执行FRAMWrite_Long((uint32_t *)FRAM_RECORD_ADDRESS, 0);时,后10*4=40会被修改为0
原来0xffffffff,被改为0x0000ffff,
void FRAMWrite_uint64(uint64_t *pFRAM_write_ptr, uint64_t ui64data)
{
SYSCFG0 &= ~DFWP;
*pFRAM_write_ptr = ui64data;
SYSCFG0 |= DFWP;
}
void FRAMWrite_Long(uint32_t *pFRAM_write_ptr, uint32_t ui32data)
{
SYSCFG0 &= ~DFWP;
*pFRAM_write_ptr = ui32data;
SYSCFG0 |= DFWP;
}
#define FRAM_RECORD_ADDRESS 0x1812
FRAMWrite_uint64((uint64_t *)FRAM_RECORD_ADDRESS,0);
FRAMWrite_Long((uint32_t *)FRAM_RECORD_ADDRESS, 0);
此帖出自
小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
FRAM好像可以提供8位16位写入,64位有问题
FRAM
The FRAM can be programmed via the JTAG port, Spy-Bi-Wire (SBW), the BSL, or in-system by the CPU.
Features of the FRAM include:
• Ultra-low-power ultra-fast-write nonvolatile memory
• Byte and word access capability
• Programmable and automated wait-state generation
• Error correction coding (ECC)
这里没说可以按64位来,所以,你要手动把他拆分成两个word来写就对了
一周热门 更多>