概要
オープンソースの PIC コンパイラって無いのかな (SDCC は PIC に関してはディスコン) って探してみたら GCBasic なるものがあったので、インストールして Lチカまでしてみた。
GCBasic 本家はこちら。
https://gcbasic.sourceforge.io/Typesetter/index.php
Linux のインストール
基本的には、ここに従いつつ、バージョンだけ最新のものを選べば良い。
ただし、そのままだと失敗するし、変えた方が良いところもある。
FreeBasic は書いてある通りに ./install.sh -i を行なうと /usr/local に直接書き込まれるので、何のファイルが入ったのか迷子になる。なので /opt/freebasic などに入れるか (./install.sh -i /opt/freebasic)、パッケージを使った方が良いと思う。ちなみに Arch は AUR にあることに後から気が付いた。
GCBasic はビルドはできるがインストールが出きない。なぜなら install.sh には LinuxBuild/SupportFiles フォルダが指定されているが、実際には linuxbuild/supportfiles フォルダだからだ。rar のせいなのか、作者が大文字小文字区別しないシェルの設定にしてたのか分からない。自分はフォルダ側を install.sh に合わせて通した。
MPLAB とテキストエディタのインストールはスキップできる。hex ファイルの書き込み手段を持っている人であれば。
Lチカしてみる
一番始めの使い方はここに書いてある。
ただし一番の注意点は CONFIG LVP=OFF がデフォルトになっていること。
定電圧書き込み手段を使っている人は注意。MicroChip 純正プログラマを使う人でも個人であれば廉価な Snap や Pickit Basic を使う人が多いだろうから注意。ちなみに私は a-p-prog。
こんなソース (hoge.c) で
; pic12f1501 with 4MHz
#Chip 12f1501,4
; The default is LVP = OFF. Very dangerous.
#config LVP = ON
#config MCLR = ON
#Define LED PortA.5
Dir LED Out
Do
LED = !LED
Wait 500 ms
Loop
; レジスタ操作、一切なし
; めっちゃ楽
コンパイルして
gcbasic /A:GCASM hoge.c
.hex の他、.asm ファイルも出きているので、どんなレジスタ操作が行なわることになったのかも確認できる。
