微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > cc3200 外部flash 文件操作

cc3200 外部flash 文件操作

时间:10-02 整理:3721RD 点击:

大家好:

          我在使用3200的外部flash的时候,想要实现文件的追加功能,sl_FsWrite函数的第二个参数是偏移量,我先用 sl_FsGetInfo 得到了文件长度,sl_FsWrite的第二个参数设置成得到的长度,我使用串口输出读到的数据个数是正确的,可是串口只能输出最后一次写入的字符串.

char FileWrite(char *fileName,uint32_t *ulToken,char *data, uint16_t dataLen){
	long lRetVal = -1;
	long lFileHandle;

	SlFsFileInfo_t pFsFileInfo;
	uint32_t ulToken_t = 0;


	lRetVal = sl_FsGetInfo((uint8_t*)fileName, ulToken_t, &pFsFileInfo);
    if(lRetVal!=0)
    {
       Report("the file is not exit\n\r");
    }
    else
    {
       Report("the file is exit\n\r");

    }
	Report("pFsFileInfo.AllocatedLen:%d\n\r",pFsFileInfo.AllocatedLen);
	Report("pFsFileInfo.FileLen:%d\n\r",pFsFileInfo.FileLen);


	lRetVal = sl_FsOpen((uint8_t *)fileName,FS_MODE_OPEN_WRITE,ulToken,&lFileHandle);
	if (lRetVal < 0){UART_PRINT("sl_FsWrite is error \n\r");lRetVal = sl_FsClose(lFileHandle, 0, 0, 0);
		}
	}

	if(pFsFileInfo.FileLen >= 20){
		pFsFileInfo.FileLen = 0;
	}

	lRetVal = sl_FsWrite(lFileHandle, pFsFileInfo.FileLen/*偏移*/,(uint8_t *)data,dataLen);
	if (lRetVal < 0){UART_PRINT("sl_FsWrite is error \n\r");lRetVal = sl_FsClose(lFileHandle, 0, 0, 0);
	}

	lRetVal = sl_FsClose(lFileHandle, 0, 0, 0);
	if (SL_RET_CODE_OK != lRetVal) {
		UART_PRINT("sl_FsClose is error  \r\n");
	}
	return SUCCESS;
}

就没有遇见过这个问题的吗? 提过几个问题都没有人回答 这是怎么回事? TI大神们 冒个泡啊

Kafei 你好,

CC3200文件系统不支持文件追加功能,如果你要追加内容,需要每次擦除然后写入整个文件。你可以参看下面的帖子,希望对你有所帮助,谢谢!

https://e2e.ti.com/support/wireless_connectivity/simplelink_wifi_cc31xx_cc32xx/f/968/t/353080

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top