[Armadillo:06544] Armadillo-300にてCFアクセス

TFC 小林 email@hidden
2011年 1月 17日 (月) 10:33:26 JST


お世話になります、TFC小林です。

Armadillo-300を使ってコンパクトフラッシュに
テキストファイルを保存、読み出しを行うプログラムを作成したのですが、
保存がうまくできなく、困っています。

inittabにて、
::sysinit:/bin/mkdir -m +w /mnt/cf
::sysinit:/bin/mount -w -t vfat /dev/hda1 /mnt/cf
と、コンパクトフラッシュをマウントして、
rcにて、./bin/Appを書き、Appというアプリを自動起動して、
コンパクトフラッシュにあるデータを読みだし、
データを書き換えて保存する動作をしています。
電源を切り、再度実行すると前回書いたはずのデータが読みだせず、
前々回書いたデータを読み出してしまいます。

rootでログインした後にAppを実行すると、
正しく前回書いた値が読み出せます。

Armadillo電源投入後、Appを自動起動して、
コンパクトフラッシュに正しくデータを読み書きするには
どうすれば良いのか、ご教授お願いします。

以下、Appの概要
///////////////////////////////////////////////////////

FILE *file;
int value;
int ret;

file = fopen("/mnt/cf/test.txt","r");
if(file<0){
  printf("Read Open Error = %d\n",errno);
}
ret = fscanf(file,"%d",&value);
printf("File Read : ret = %d , value=%d\n",ret,value);
fclose(file);

srand((unsigned)time(NULL));
value = rand();

file = fopen("/mnt/cf/test.txt","w");
if(file<0){
  printf("Write Open Error = %d\n",errno);
}
ret = fprintf(file,"%d",value);
printf("File Write : ret=%d , errno=%d , value=%d\n",ret,errno,value);
fclose(file);

///////////////////////////////////////////////////////

rootでログインした場合での実行結果
///////////////////////////////////////////////////////
1回目
File Read : ret = 1 , value=255766725
File Write : ret=10 , errno=0 , value=1868517907

2回目
File Read : ret = 1 , value=1868517907
File Write : ret=10 , errno=0 , value=2075531002


自動起動の実行結果
///////////////////////////////////////////////////////
1回目
File Read : ret = 1 , value=2075531002
File Write : ret=10 , errno=0 , value=174736598

2回目
File Read : ret = 1 , value=2075531002
File Write : ret=10 , errno=0 , value=1836334099







armadillo メーリングリストの案内