TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS570LC4357内部flash读写问题

Other Parts Discussed in Thread:TMS570LC4357, UNIFLASH

各位大神!我在调试TMS570LC4357内部flash时,发现flash的bank0和bank1一上电内部就随机分布一些数据,这些有数据的地址无法正常擦除和写入数据,我目前想操作bank1,但上电有数的地方我无法操作,请问这个问题怎么解决?

麻烦各位大神指点!

Susan Yang:

Flash Bank:A separate block of logic consisting of 1 to 16 sectors. Each flash bank normally has a customer-OTP and a TI-OTP area.

您现在Flash Bank Sector Enable Register (FBSE)/Flash Bank Protection Register (FBPROT)是如何设置的?

有没有使用flash API 来擦除flash试试?

,

Susan Yang:

/* Purpose : main function for flash wrapper testing*/#include <stdio.h>
#include <stdlib.h>
#include "Constants.h"
#include "Helpers.h"
#include "Registers.h"
#include "Types.h"
#include "F021.h"/* added to verify the erase and program operation on EEPROM memory */void Fapi_BlockProgram( unsigned int Bank, unsigned int Flash_Start_Address, unsigned int Data_Start_Address, unsigned int Size_In_Bytes, unsigned int Freq_In_MHz);
void Fapi_SectorErase( unsigned int Bank, unsigned int Flash_Start_Address, unsigned int Freq_In_MHz);void Fapi_BlockProgram( unsigned int Bank, unsigned int Flash_Start_Address, unsigned int Data_Start_Address, unsigned int Size_In_Bytes, unsigned int Freq_In_MHz)
{register unsigned int src = Data_Start_Address;register unsigned int dst = Flash_Start_Address;register unsigned int bytes_remain = Size_In_Bytes;Fapi_initializeAPI((Fapi_FmcRegistersType *)0xfff87000,Freq_In_MHz);Fapi_setActiveFlashBank(Bank);while( bytes_remain > 0){Fapi_issueProgrammingCommand((unsigned int *)dst,(unsigned char *)src,(unsigned long) 16,0,0,Fapi_AutoEccGeneration);while( Fapi_checkFsmForReady() == Fapi_Status_FsmBusy );src += 0x10;dst += 0x10;bytes_remain -= 0x10;}}void Fapi_SectorErase( unsigned int Bank, unsigned int Sector_Start_Address, unsigned int Freq_In_MHz);
{Fapi_initializeAPI((Fapi_FmcRegistersType *)0xfff87000,Freq_In_MHz);Fapi_setActiveFlashBank(Bank);Fapi_issueAsyncCommandWithAddress(Fapi_EraseSector, (uint32 *)Sector_Start_Address);while( Fapi_checkFsmForReady() == Fapi_Status_FsmBusy );}

,

user6235973:

你好,我是用的 F021 FLASH API (02.01.01)进行flash调试的。

其中,Flash Bank Sector Enable Register (FBSE) =  0x00000400;Flash Bank Protection Register (FBPROT) = 0x00000001;

下面图1为写FLASH的代码:

图2为擦FLASH的代码:

请问哪里配置还有问题吗?flash上电部分地址有数是正常现象吗?有数的地方应如何擦除呢?

,

Susan Yang:

关于擦除和写入,您可以看一下下面文档的3.3 Erasing Operations 以及 3.2 Programming Operations

的示例代码

www.ti.com/…/spna148.pdf

“flash上电部分地址有数” 感觉不应该这样。您这个板子之前是烧录过程序吗?

,

Susan Yang:

找了个开发板测试了一下,如下图

板子内有预设的程序,所以flash内是有数据的

之后使用uniflash进行擦除

擦除后如下图所示

,

user6235973:

我们现在是这样的,我们的程序通过仿真器直接下载到芯片FLASH的bank0了,从bank0的起始地址到bank0的某某地址为我们的代码,这部分地址有数据我理解,但是除了代码地址段,其他地方也随机分布着一些数据,而且我现在是要通过烧录的代码去操作bank1,bank1一上电它里面的数据是下图这样的,并不是全FF,bank0的非代码区也并不是全FF,这种现象是否正常?

,

user6235973:

我看你上面用的芯片是TMS570LS43X系列的,我的芯片是TMS570LC43X系列的,这跟芯片型号有关系吗?

,

user6235973:

你好,你开发板芯片型号是TMS570LS43X系列,我用的芯片是TMS570LC43X系列的,这有区别吗?

,

user6472941:

请问一下,这个问题解决了吗?我现在也遇到了这个问题

,

user6235973:

还没有,暂停中,如果你有新进展麻烦告知一下,谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » TMS570LC4357内部flash读写问题
分享到: 更多 (0)