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