[Armadillo:06548] Re: Armadillo-300にてCFアクセス
mizo
email@hidden
2011年 1月 17日 (月) 12:53:05 JST
溝渕です。
TFC 小林 wrote:
>> Appはどこに置いてありますか?
>>
>> /bin/Appだったりするのでしょうか?もし、スクリプト内でcdしていたりする
>> と、カレントディレクトリが/ではなくなるので、./bin/Appと/bin/Appは異な
>> り
>> ます。
>
> すいません、良く分からず使っており意味がわからないのですが、
> 現在、開発環境上(VMware)では、
> /home/atmark/atmark-dist-20090318/vendors/AtmarkTechno/Armadillo-300/App/App
> .cとなっており、
Appをどこにインストールするか決めるのは、Makefileなので上記だけでは判断
できません。ビルド後に、
[atde]$ find /home/atmark/atmark-dist-20090318/romfs -name "App"
するとどこにインストールされたかがわかります。
> 「email@hidden:~/atmark-dist-20090318$」にて、makeコマンドでイメージを作って
> います。
> 上記をフラッシュに書いて実行すると、
> email@hiddenからのコンソールでは、/bin/Appがあります。
> この場合、「./bin/App」「/bin/App」どちらを使うべきでしょうか?
./bin/Appは、「相対パス」なので、カレントディレクトリによってパスが変わ
る可能性があります。
例えば、現在のカレントディレクトリが、/tmp/の場合、./bin/Appは、
/tmp/bin/Appと同じです。
/bin/Appは絶対パスなので、カレントディレクトリによらずパスが変わることは
ありません。
/etc/init.d/rcの場合、すでに実行ファイルのパス(環境変数PATH)に/bin/が
入っているので、パスを与えずに、
App
のようにすると良いと思います。
>> 最終的に、コンパクトフラッシュはumountしていますか?以下のようなプログ
>> ラ
>> ムの場合、書き込みデータはキャッシュされるので、コンパクトフラッシュに
>> す
>> ぐには反映されません。
>>
>> 確実にデータを書き込むためには、umountするのが無難だと思います。
>
> ユーザープログラム内にて、ファイルをopen/closeするたびに、
> mount/umountを実行すれば良いのでしょうか?
> App.cでmount/umountのやり方はどうすればいいのかご教授お願いします。
> これがわからなく、inittabでmountしていた次第です。
プログラム内から、mount/umountをしたい場合は、システムコールの
mount/umountを使用すると良いと思います。
[atde]$ man 2 mount
プログラム内でmountしなくても、シェルスクリプトで、
#!/bin/sh
mkdir -p /mnt/cf
mount -t vfat /dev/hda1 /mnt/cf
App
umount /mnt/cf
のようにすると良いと思うのですがいかがでしょうか?
以上です。
armadillo メーリングリストの案内