在线时间5 小时
UID94779
注册时间2007-8-7
NXP金币0
该用户从未签到
注册会员

- 积分
- 92
- 最后登录
- 1970-1-1
|
K60开发板,片内FLASH为512KB,MQX已经能正常跑,将片内的FLASH分两个块,通过FLASHX驱动加载后,能正常对第二块进行读写,
const FLASHX_FILE_BLOCK _bsp_flashx_file_blocks[] = {
{ "bank0", BSP_INTERNAL_FLASH_BASE , BSP_INTERNAL_FLASH_BASE + (BSP_INTERNAL_FLASH_SIZE / 2) - 1 },
{ "bank1", BSP_INTERNAL_FLASH_BASE + (BSP_INTERNAL_FLASH_SIZE / 2), BSP_INTERNAL_FLASH_BASE + (BSP_INTERNAL_FLASH_SIZE ) - 1 },
{ "" , (uint_32) __FLASHX_START_ADDR, (uint_32) __FLASHX_END_ADDR-1 },
{ NULL , 0, 0 }
};
现在想将第二个块挂载MFS文件系统,
dev_handle1 = fopen("flashx:bank1", NULL);
if ( dev_handle1 == NULL ) {
printf("\nUnable to open flashx:bank1 device");
_task_block();
} /* Endif */
/* Install MFS */
mqx_status = _io_mfs_install(dev_handle1, "a:", (_file_size)0);
if (mqx_status != MFS_NO_ERROR) {
printf("\nError initializing a:");
_task_block();
} else {
printf("\nInitialized mfs flashx Disk to a:\\");
} /* Endif */
/* Open the filesystem and format detect, if format is required */
a_fd_ptr = fopen("a:", NULL);
error_code = ferror(a_fd_ptr);
if ((error_code != MFS_NO_ERROR) && (error_code != MFS_NOT_A_DOS_DISK))
{
printf("\nError while opening a:\\ (%s)", MFS_Error_text((uint_32)(uint_32)error_code));
_task_block();
} /* Endif */
if ( error_code == MFS_NOT_A_DOS_DISK ) {
printf("\nNOT A DOS DISK! You must format to continue.");
} /* Endif */
我将第二个分区挂载后,加载MFS文件系统到A盘,系统能启动,也能正常操作并建立文件,并向文件中写入内容。但是断电重新启动后,原来建立的文件就没有了。同样的方法,在SD卡上建立文件,是可以保存的,是什么原因?

|
|