[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 メーリングリストの案内