[Armadillo:06546] Re: Armadillo-300にてCFアクセス
mizo
email@hidden
2011年 1月 17日 (月) 10:57:30 JST
溝渕です。
TFC 小林 wrote:
> Armadillo-300を使ってコンパクトフラッシュに
> テキストファイルを保存、読み出しを行うプログラムを作成したのですが、
> 保存がうまくできなく、困っています。
>
> inittabにて、
> ::sysinit:/bin/mkdir -m +w /mnt/cf
> ::sysinit:/bin/mount -w -t vfat /dev/hda1 /mnt/cf
> と、コンパクトフラッシュをマウントして、
> rcにて、./bin/Appを書き、Appというアプリを自動起動して、
Appはどこに置いてありますか?
/bin/Appだったりするのでしょうか?もし、スクリプト内でcdしていたりする
と、カレントディレクトリが/ではなくなるので、./bin/Appと/bin/Appは異なり
ます。
> コンパクトフラッシュにあるデータを読みだし、
> データを書き換えて保存する動作をしています。
> 電源を切り、再度実行すると前回書いたはずのデータが読みだせず、
> 前々回書いたデータを読み出してしまいます。
最終的に、コンパクトフラッシュはumountしていますか?以下のようなプログラ
ムの場合、書き込みデータはキャッシュされるので、コンパクトフラッシュにす
ぐには反映されません。
確実にデータを書き込むためには、umountするのが無難だと思います。
以上です。
> 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 メーリングリストの案内