LoginSignup
0
2

More than 1 year has passed since last update.

VSCode で AVR 開発のための設定

Last updated at Posted at 2021-06-22

この記事は?

VSCode には、C/C++ の文法チェックをしてくれる拡張機能があります。(Microsoft社提供)

vscode-ext.png

C/C++ の構文エラー等をエディター上に表示してくれます。
デフォルト設定では AVR 用ライブラリ等には対応していないので、設定してやる必要があります。
ただエラーを非表示にしたいだけであれば、拡張を一時的に無効にしてやるだけでも良いです。
が、入力補間等を愛用する自分は、AVR 用 Cプログラムでも構文チェックが欲しいです。

この記事では、自分が行ったその設定をまとめました。

環境

項目 バージョン等
OS Linux Mint 20.1 Ulyssa 64 ビット
avr-gcc (GCC) 5.4.0
Visual Studio Code 1.57.1
C/C++ (VSCode 拡張) v1.5.0-insiders2

この記事では、AVR チップ「ATmega 328p」に対する設定で書いていきます。

インクルードパス

この拡張のデフォルト設定のまま AVR 用 C ソースを記述すると、このようなエラーが表示されてしまいます。

code-1.png

デフォルトでは標準の Cライブラリ/usr/includeしかインクルードパスに入っておらず、AVR 用ライブラリ/usr/lib/avr/includeは検知対象外となっています。
そこで、インクルードパスの設定に、/usr/lib/avr/includeを追加してやります。

conf-1.png

コンパイラ設定

さて、avr/io.h等のヘッダのインクルードが検出されるようになりました。
しかし、今度はレジスタ等関連のものが定義されていないとエラーが出てしまっています。

code-2.png

コード上でavr/io.hをインクルードした段階では、まだ各チップ固有のレジスタ情報等がまとめられたライブラリは読み込まれていません。
(ATmega328p の場合、avr/iom328p.h)
各チップ固有のライブラリの読み込みは、avr-gccコンパイルの際に行われます。

avr-gcc -mmcu=atmega328p main.c -o main

構文チェックで-mmcu=atmega328pが適応されるよう、設定をしていきます。

まずはコンパイラパスの設定。
avr-gccをコンパイラとしてパスを指定します。

conf-2.png

次に、コンパイラ引数に-mmcu=atmega328pを追加します。
(ここは、使用するチップによって変更してください。)

conf-3.png

以上で設定は完了です。
AVR ライブラリが読み込まれ、レジスタ等の情報も正しく表示してくれています。

code-3.png

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2