Armadilloフォーラム

ABOS C言語開発環境におけるGDBのデバッグについて

shun

2024年12月18日 14時56分

==========
製品型番:Armadillo-610
Debian/ABOSバージョン:3.19.2-at.5
カーネルバージョン:Linux armadillo 5.10.220 #1 Mon Nov 11 18:22:24 JST 2024 armv7l Linux
その他:U-Boot 2020.04-at24 (Jun 25 2024 - 05:19:56 +0000)
==========

https://armadillo.atmark-techno.com/forum/armadillo/22651#comment-18274
↑のフォーラムでGDBを使ったデバッグをしているのですが、疑問点があったので質問します。

GDBのデバッグ環境のファイルシステムと、swuインストールしたArmadillo-610のファイルシステムが異なっているのですが、どういった違いがあるのでしょうか?
具体的には、/vol_app/や/vol_data/といったディレクトリがArmadillo-610のルートディレクトリにはありません。

ご回答いただけると幸いです。

コメント

at_reika.yamazaki

2024年12月18日 18時03分

お世話になっております。山崎です。

>swuインストールしたArmadillo-610のファイルシステム
こちらは以下にある Armadillo-610用 SWUイメージファイルをご使用になったということで相違ないでしょうか?
https://armadillo.atmark-techno.com/resources/software/armadillo-610/ba…

こちらに対して、GDBのデバッグ環境のファイルシステムというのは ABOSDE で開発した C言語プロジェクトでインストールしたコンテナ内だと思います。
この C言語プロジェクトの config/app.conf に以下の記述があると思います。

add_volumes {{PROJECT}}:/vol_app
add_volumes /var/app/volumes/{{PROJECT}}:/vol_data

これは ABOS 上のディレクトリをコンテナ内にマウントする記述になります。
この記述により、コンテナ内ではボリュームマウントされた /vol_app や /vol_data ディレクトリが現れて、アクセスできるようになります。
また、ボリュームマウントすることにより、コンテナ内で作成されたファイルに ABOS 上からアクセス出来たりといったことが可能になります。

他、疑問点等ありましたら仰ってください。
以上、どうぞよろしくお願いいたします。

お世話になっております。
ご回答ありがとうございます。GDBデバッグ環境からはコンテナ内にボリュームマウントされたディレクトリを参照しているということですね。

現在[/dev/ttyACM0]を使用してシリアル通信をしたいと思っております。
Armadillo-610本体には[/dev/ttyACM0]のデバイスファイルが存在するのですが、GDBのデバッグ環境にはそのディレクトリはありませんでした。
同じルート名でArmadillo本体に参照したい場合、

add_devices /dev/ttyACM0 /dev/ttyACM0

このような記述をapp.confに追記すればよいでしょうか?

ご回答の程よろしくお願いいたします。

at_reika.yamazaki

2024年12月20日 11時20分

お世話になっております。山崎です。
/dev/ttyACM0 をコンテナに渡したいということですね。
載せてくれたように add_devices にコンテナに渡したいデバイスファイル名を記載すると渡せます。
また、add_devices の場合は記載したデバイスファイル名がそのままコンテナに渡されるため、ボリュームマウントの時のような指定は不要です。
app.conf に以下を追記してください。

add_devices /dev/ttyACM0

以上、どうぞよろしくお願いいたします。