这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » MSPM0L1306写入过后的Flash区域无法读取

共2条 1/1 1 跳转至

MSPM0L1306写入过后的Flash区域无法读取

工程师
2025-01-07 18:14:28     打赏

1、将Flash区域擦除,写入数据后,再进行读取会进入不可屏蔽中断,无法正常运行
2、但是读取没有写入过的区域是正常的,请问是需要什么特殊配置吗

//读取代码
void DrvFlashReadBuff(uint8_t* pBuffer, uint32_t ReadAddr, uint16_t NumByteToRead)
{
uint32_t pData = (uint32_t)pBuffer;
uint16_t i = 0;

while(i < NumByteToRead)
{
    *(pData++) = *((volatile uint32_t*)ReadAddr);
    ReadAddr += 4;
    i += 4;
}

}





关键词: MSPM0L1306     Flash     区域    

助工
2025-01-07 18:15:43     打赏
2楼

读取Flash区域的函数似乎没有明显的问题。可能问题出在其他地方,比如Flash区域的地址设置是否正确、Flash的时钟配置是否正确等。您可以尝试以下几个步骤来排查问题:

1. 确保Flash区域的地址设置正确。请检查ReadAddr的值,确保它指向您要读取的Flash区域的正确地址。

2. 检查Flash的时钟配置。Flash的读取操作可能需要特定的时钟频率和访问等待周期。请确保您的时钟配置符合Flash的要求。

3. 确保Flash区域已经被正确地擦除和写入。如果Flash区域没有被正确地擦除或写入,读取操作可能会导致不可预料的结果。请确保在读取操作之前,Flash区域已经被擦除和写入了正确的数据。

4. 检查是否有其他地方的代码或硬件操作干扰了Flash读取操作。例如,其他中断或DMA操作可能会对Flash读取操作造成干扰。您可以尝试暂时禁用这些操作,然后再次尝试进行Flash读取,看是否问题依然存在。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]