CC3200例程File_operations中的sl_FsOpen()问题
在IAR中运行CC3200的例程File_operations,可以编译成功、下载。但程序不能在片外flash中建立、打开文件。单步运行,在main.c:
(在File_operetions例程的main.c文件中,关于一个文件建立、写操作过程如下,
//
// Initializing the CC3200 networking layers
//
iRetVal = sl_Start(NULL, NULL, NULL);
if(iRetVal < 0)
{
GPIO_IF_LedOn(MCU_RED_LED_GPIO);
return -1;
}
//
// reset all network policies
//
sl_WlanPolicySet( SL_POLICY_CONNECTION,
SL_CONNECTION_POLICY(0,0,0,0,0),
&policyVal,
1 /*PolicyValLen*/ );
//
// create a user file
//
iRetVal = sl_FsOpen((unsigned char *)USER_FILE_NAME,
FS_MODE_OPEN_CREATE(65536, _FS_FILE_OPEN_FLAG_COMMIT|_FS_FILE_PUBLIC_WRITE),
&ulToken,
&lFileHandle);
//运行 sl_FsOpen后, iRetVal=(-30),lFileHandle = E2
if(iRetVal < 0)
{
//
// File may already be created
//
iRetVal = sl_FsClose(lFileHandle, 0, 0, 0);
}
else
{
//
// close the user file
//
iRetVal = sl_FsClose(lFileHandle, 0, 0, 0);
if (SL_RET_CODE_OK != iRetVal)
{
GPIO_IF_LedOn(MCU_RED_LED_GPIO);
return -1;
}
}
//
// open a user file for writing
//
iRetVal = sl_FsOpen((unsigned char *)USER_FILE_NAME,
FS_MODE_OPEN_WRITE,
&ulToken,
&lFileHandle);
//运行 sl_FsOpen后, iRetVal=(-11),lFileHandle = F5
if(iRetVal < 0)
{
iRetVal = sl_FsClose(lFileHandle, 0, 0, 0);
GPIO_IF_LedOn(MCU_RED_LED_GPIO);
return -1;
}
两次运行sl_FsOpen后返回数据均为负数,不知为什么。
1. 你的SDK和service pack的版本是多少?
2. 可以在TI的launchpad上先验证一下,看是否工作。
遇到跟楼主一样的问题,而且是使用example在launchpad上尝试的。这个跟service pack有关系吗?谢谢
和service pack 相关的,操作FLASH文件系统是通过网络处理器来做的,所以是和service pack相关的。