電子ブロック工房:
Deprecated: Function strftime() is deprecated in /home/u109394186/domains/rad51.net/public_html/jeans/jeans/libs/blog.php on line 333
2025年 03月の記事
Raspberry Pi Pico用のC/C++ビルド環境を構築する [Raspberry Pi Pico]
2025年3月15日
この記事(というか、自分用のメモ)では、Windows PC に、Raspberry Pi Pico 用の C/C++ で書かれたプログラムをビルドする環境を方法について述べる。例として、MachiKania のソースコードからビルドする方法について述べるが、他の Raspberry Pi Pico 用のプログラムでも同じであり、また、Pico 2, Pico W, Pico 2 W にも対応できる。
Raspberry Pi Pico 用のソースコードからビルドするには、VS code の extension を用いる方法があるが、私自身がその extension の中身をよく理解しておらず、どういう操作を行っているか分からないので、使っていない。この記事でも、VS code は使わず、必要なソフトウェアーを個々に揃えて利用する方法をとる。

Raspberry Pi Pico 用のソースコードからビルドするには、VS code の extension を用いる方法があるが、私自身がその extension の中身をよく理解しておらず、どういう操作を行っているか分からないので、使っていない。この記事でも、VS code は使わず、必要なソフトウェアーを個々に揃えて利用する方法をとる。

(画像は、ビルドに成功した時のスクリーンショット)
MachiKaniaの「auxcode」機能について [MachiKania]
2025年3月2日
MachiKania の ver 1.4 からは、「auxcode 機能」が使える。これは、C で書かれたコードを、MachiKania 本体に追加で取り込んで使うための機能である。
MachiKania では、BASIC で様々なことを行う機能を提供してきた:
1.液晶ディスプレイや NTSC ビデオに、(日本語を含む)文字やグラフィックスを容易に表示
2.キーボードを接続して、BASIC コードを編集しながら実行する、スタンドアローンPCとしての機能
3.SPI・I2C・UART などの I/O 機能を、BASIC コードから容易に使用する方法を提供
4.複雑な動作を行うコードを、容易に利用するためのクラスライブラリーを提供
ここで書いた3の部分は、MachiKania 本体で提供、4の部分はクラスで提供している。ほとんどのクラスが BASIC で書かれているが、いくつかは C で書かれたコードを BASIC から呼び出す形をとっている(方法1・方法2)。
C で書かれたコードの中には、容易に MachiKania から呼び出すように修正できるものもあれば、そういったことが非常に難しいものがある。例えば、RP2040 の PIO 機能を使ったものは、BASIC で利用できるように実装するのは非常に難しい。
「auxcode 機能」は、そういった C のコードを MachiKania で実行できるようにするものだ。「auxcode 機能」を使うには MachiKania 本体のビルドが必要になるが、どうしても必要な機能を MachiKania に取り込むのには汎用性が高いと言える。
MachiKania では、BASIC で様々なことを行う機能を提供してきた:
1.液晶ディスプレイや NTSC ビデオに、(日本語を含む)文字やグラフィックスを容易に表示
2.キーボードを接続して、BASIC コードを編集しながら実行する、スタンドアローンPCとしての機能
3.SPI・I2C・UART などの I/O 機能を、BASIC コードから容易に使用する方法を提供
4.複雑な動作を行うコードを、容易に利用するためのクラスライブラリーを提供
ここで書いた3の部分は、MachiKania 本体で提供、4の部分はクラスで提供している。ほとんどのクラスが BASIC で書かれているが、いくつかは C で書かれたコードを BASIC から呼び出す形をとっている(方法1・方法2)。
C で書かれたコードの中には、容易に MachiKania から呼び出すように修正できるものもあれば、そういったことが非常に難しいものがある。例えば、RP2040 の PIO 機能を使ったものは、BASIC で利用できるように実装するのは非常に難しい。
「auxcode 機能」は、そういった C のコードを MachiKania で実行できるようにするものだ。「auxcode 機能」を使うには MachiKania 本体のビルドが必要になるが、どうしても必要な機能を MachiKania に取り込むのには汎用性が高いと言える。