PIC32MX210F016BとHarmony
秋月で190円(2022年1月現在)で売っている、USB搭載最安PICです。半導体不足の影響か、PICが軒並み値上げになっているので昔はもっと安かったと思います。ともかく、この値段で32bitアーキテクチャであり、ハードウェア乗算機を積んでいる超賢い石がこの値段で手に入るのはすごいですね。
さて、USB積んでるならUSB機器作れて当たり前だろという感じですが、210F016Bはメモリ4kB, フラッシュ19kB という(PIC32としては)地を這うようなリソースの制限があります。加えて、Microchip社はPIC32、特にMXシリーズ以上でHarmonyというフレームワークを使用して開発することを想定しており、FreeRTOSが否応なしに走るのでリソースを馬鹿食いします。
MHC(Microchip Harmony Configurator)を使ってプロジェクトを作った方なら分かると思いますが、USBの適当なクラス(HIDとかCDCなど)を搭載したプロジェクトを作ると、メモリアロケーションできずにビルドが通りません。ヒープとかスタックのサイズを調整してもどこかしらのアロケーションエラーが出ます。少なくともフリー版XC32では最適化レベルを変更してもどうやっても通りません。
使っていない機能の変数割当をエラーが出なくなるまで削るといいんでしょうが、本当に使っていない変数ならコンパイル時に除去されるので、いい感じに容量削減するのは骨が折れそうです。
いくらググっても32MX210でUSB機器開発した情報が出てこないので、今回はこれをなんとかしてみたいと思います。