도와주세요!!
글 수 15,339
2008.12.27 14:32:03 (*.247.184.164)
6645
임베디드 보드에서 FAT32 형식에 usb에 파일 저장하는데요....4번 이상하면 보드가 커널 패닉이 나요.ㅠㅠ
usb 자동마운트는 dev/sda1 vfat /mnt umask=000 1 1로 했습니다.
40만 2바이트가 한번 저장은 되는데 두 번째는 저장하는 순간 커널 패닉이 나네요..흠...
한달째 고생하고 있습니다...한달동안 생각해본건데 2바이트 부터 40만 바이트 까지 저장 다 해봤는데요...
40만 바이트 두번만 하면 커널이 가요..ㅠㅠ 고수님들 답변 부탁드립니다.
FILE *p;
p = fopen(m, "wb");
char m_test[2];
m_test[0]=m_Relay;
m_test[1]=0xff;
if(p)
{
int j=0;
for(j=0;j<400000;j+=1024)
{
if(j+1024 < 400000)
{
fwrite(m_sur1+j,1, 1024, p);
sync();
}
else
{
fwrite(m_sur1+j,1,400000-j, p);
sync();
}
usleep(10);
}
fwrite(m_test, 2, 1,p);
printf("file save endn");
fclose(p);
}
이렇게 안 되어서
int fp = open(m, O_WRONLY | O_SYNC | O_CREAT | O_DIRECT);
열어서
write 한 후,
fsync(fp);
fsyncdata(fp); 다 해봤는데 안 되요..
흠...무슨 문제 일까요?
usb 자동마운트는 dev/sda1 vfat /mnt umask=000 1 1로 했습니다.
40만 2바이트가 한번 저장은 되는데 두 번째는 저장하는 순간 커널 패닉이 나네요..흠...
한달째 고생하고 있습니다...한달동안 생각해본건데 2바이트 부터 40만 바이트 까지 저장 다 해봤는데요...
40만 바이트 두번만 하면 커널이 가요..ㅠㅠ 고수님들 답변 부탁드립니다.
FILE *p;
p = fopen(m, "wb");
char m_test[2];
m_test[0]=m_Relay;
m_test[1]=0xff;
if(p)
{
int j=0;
for(j=0;j<400000;j+=1024)
{
if(j+1024 < 400000)
{
fwrite(m_sur1+j,1, 1024, p);
sync();
}
else
{
fwrite(m_sur1+j,1,400000-j, p);
sync();
}
usleep(10);
}
fwrite(m_test, 2, 1,p);
printf("file save endn");
fclose(p);
}
이렇게 안 되어서
int fp = open(m, O_WRONLY | O_SYNC | O_CREAT | O_DIRECT);
열어서
write 한 후,
fsync(fp);
fsyncdata(fp); 다 해봤는데 안 되요..
흠...무슨 문제 일까요?