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

C6745的FLASH烧写问题,提示擦除失败,追踪了程序的运行发现……

下载了OMAP-L137_FlashAndBootUtils_2_40.tar,用CCS5.5打开SPIWriter_DSP并转换成新版本,设置相关选项并修改了源文件中SPI号和FLASH的容量参数后进行编译:

首先出现了3个错误,是修改项目配置后CCS自动添加了一个c6745.cmd的文件与项目自带的SPIWriter_DSP.CMD冲突导致,删除c6745.cmd后错误消失;

然后还有11个警告,如图

没有下载到6745的CSL于是暂时忽略,尝试直接运行,

打开文件正常,擦除失败了

于是追踪了程序的运行,发现……..

在SPI_MEM_open的时候,hSPIMemInfo这个结构体指针赋值异常…..这部分代码如下,

if (hDEVICE_SPI_MEM_params != NULL)
{
hSPIMemInfo->hMemParams = hDEVICE_SPI_MEM_params;
}

运行时该判断语句为true已经执行了赋值语句….然而…….

由于这个指针内的内容异常导致在进行SPI_MEM_eraseBytes时无法读取到SPI接口存储器的类型而导致跳过擦除程序的执行

下面这段代码是SPI_MEM_eraseBytes函数中的一部分,

else if (hSPIMemInfo->hMemParams->memType == SPI_MEM_TYPE_FLASH)
{

// Do bulk (chip) erase if appropriate
if ( hSPIMemInfo->hMemParams->memorySize != 0 )
{
if ( ( bytesLeft >= hSPIMemInfo->hMemParams->memorySize ) ||
( (hSPIMemInfo->hMemParams->blockSize == 0) && (hSPIMemInfo->hMemParams->sectorSize == 0) ) )
{
// Do chip erase
//DEBUG_printString( "Doing bulk chip erase.\r\n");
LOCAL_SPIFlash_bulkErase(hSPIMemInfo);
//DEBUG_printString( "Finished bulk chip erase.\r\n");
return E_PASS;
}
}

是什么导致了赋值不成功,是项目配置有问题么…..

这个SPIWriter如果用于C6745的话应该做哪些配置呢

Shine:

先把编译时的warning都清掉再试试。

user3706432:

回复 Shine:

Shine Zhang

先把编译时的warning都清掉再试试。

Shine:

回复 user3706432:

不需要CSL库。C6000的CSL库不支持C674x的。

user3706432:

回复 Shine:

Shine Zhang

先把编译时的warning都清掉再试试。

赞(0)
未经允许不得转载:TI中文支持网 » C6745的FLASH烧写问题,提示擦除失败,追踪了程序的运行发现……
分享到: 更多 (0)