HALの開発環境(2)
今回はmake,arm-none-eabi-gcc(長い),debugger, gitを入れましょう。Linux系には大抵makeは入ってますが、(gitも)でもコンパイラはないでしょうねでは入れていきましょう。
[shell] $ sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded $ sudo apt-get update
Version確認
$ sudo apt-cache policy gcc-arm-none-eabi $ sudo apt-get install gcc-arm-none-eabi=<ここにVersionを入れる> gdb-arm-none-eabi git make
必要なパッケージを入れてください。
あとデフォで古いパッケージが選択されている時、インスコはできますがmakeに失敗します。
必ず新しいパッケージを入れてください。
[/shell]
$ sudo apt-cache policy gcc-arm-none-eabi gcc-arm-none-eabi: インストールされているバージョン: 4.9.3.2015q3-1trusty1 候補: 4.9.3.2015q3-1trusty1 バージョンテーブル: *** 4.9.3.2015q3-1trusty1 0 500 http://ppa.launchpad.net/terry.guo/gcc-arm-embedded/ubuntu/ trusty/main i386 Packages 100 /var/lib/dpkg/status 4.8.2-14ubuntu1+6 0 500 http://jp.archive.ubuntu.com/ubuntu/ trusty/universe i386 Packages この時、うえのほうが最新版です。元々が入っている方が古いやつで、これでは実際のコンパイルできません。通りません。。。
makeはコンパイル用のソフトだと思ってればいいと思います。これは-jで並列コンパイルも出来るのでいいですね。 Makefileは書かないとならないですが。なんとかなるでしょ。で、
[shell]
Makefileのあるディレクトリで
$ make -j [/shell]
でコンパイルできます。
gitはヴァージョン管理用のシステムで、共同管理するときにも使います。使い方は調べてね。
あとはコンパイラとデバッガです。デバッガはgdbなのでいいですね。エディターと連携取れるし。デバッガはクライアントとホストでいいのかな?両方必要です。 STMの場合は二通りのクライアントがあります。OpenOCDとst-utilがあります。私はもともと前者使ってましたが今は後者を使ってます。好きな方でどうぞ。
st-utilは
https://github.com/texane/stlink を参考にしてください。2016/06/30現在Readmeがバグってるので適当に他のブランチを覗くといいでしょう。(爆確認したところ、iPhone5sから見るとなんかうまく行かない?READMEのなかみがReadmeって出るだけだったけどとりあえずPC番だと大丈夫そう?まあ何とかなりそうです。
無事にインストールできたらデバイスを接続し、st-utilを実行します。(実行の仕方は。これはいいよな)。ポート4242を使います。
[shell] $ arm-none-eabi-gdb <実行ファイル.elf>
起動したら
(gdb) tar ext:4242 [/shell]
あとはloadで書き込みのほかはgdbと全く同様です。また、emacsで実行するとかなり良いでしょう。これによって連携も取れるようになり、多分使いやすいです。(個人的にはTUIでもいいかなと思ってるところだけど)
- n...next line?(次の行に進む(関数は実行するが、止まらない
- s...step into(関数内に入るように(関数内で止まる)進む。)
- c...continue (続ける)
- b...break point(止まる箇所)の設定。間数名や行数指定
- load...ファイルの読み出し+書き込み
- info breakpoints...ブレイクポイントの確認
- d...break pointの削除 番号指定する
- fin...関数の終了まで実行
- p ...print変数の表示(関数の実行も可能)
- p/x ...16進数版
- set...変数のセット(代入文で良さそう)