sdcc-usb
sdcc← PIC日記?← →sdccを飼い馴らす →PIC18F4550
目次:
共通のお約束
- 秋月AE-18F2550またはほぼ互換なハードウェア用(PIC18F4550でもOK)です。
- 参考:UBWサイトにある回路図 --> 水晶は20MHzに。(秋月のと同じファームが使えるので)。
- PICへのファームウェア書き込みはブートローダーの使用をお勧めします。
- ツール、ブートローダーともに、HIDmon-2550アーカイブに含まれています。
お断り
- PICのアーキテクチャーが抱える問題と、sdccのやる気のなさにより、C言語で書かれたアプリケーションは肥大であり、低速です。
- しかしフルアセンブラで書くよりは、保守性が高いと思います。
- 部分的に高速化する手段は残されていますので、絶望しないでください。
void sub1(void) __naked { __asm 処理を記述 ・・・ return __endasm ; }
こんな感じです。
- C:/sdcc/ にsdccをインストールしている場合、
以下のディレクトリにライブラリのソースがあります。
C:/sdcc/lib/src/pic16/
- 一通りさらっと目を通しましょう。
- それに倣って書けば、PICなのに高速なアプリケーションが書ける様になります。
SDCC bootloader
■ 概要
- これはMicrochipが提供しているPIC 18F2550用のUSBブートローダー のファームウェアを sdcc でコンパイル出来るように改造したものです。
■ 用途
- PICでのUSBバルク転送ベンチマーク(USB転送高速化の研究)に使うことが出来ます。
■ Download
- 現在のところ、HIDmonのようにポートやメモリーを読み書きする機能はありません。
- USB転送のベンチマークだけを実行出来ます。
- PIDをFirmware-Bと同じにすれば、MyBootから操作できます。(但しFlash書き込みはsdccとC18の仕様に関わる問題により、今のところ出来ません)
UBW リメイク
■ 概要
- UBW Firmware-D 1.4.3 のリメイクです。
- MicroChipによるビルドディレクトリ構成が(深すぎて)気に入らなかったので、system/以下を平坦にしてみました。
(--+勝手に改蔵+-勝手に改蔵+-勝手に改蔵+---) - ブートローダーから起動するバイナリー(0x800 オリジン)と、外部PICライターを使って単独に書き込むバイナリー(0x0000オリジン)の両方が作成できます。
■ 用途
- PCに接続すると仮想COMポート接続によりファームウェアと交信出来ます。
- GainerのようにPICのI/Oの読み出しとコントロールが出来ます。
- Gainerに良く似た(しかしGainerより少しだけエレガントな)汎用USB-IOとして使えます。
■ Download
USB-CDCスケルトン
■ 概要
- UBWを改造して、CDCクラス(仮想COMポートデバイス)のスケルトンを試します。
■ 用途
- 各種CDCデバイスを作成するフレームワークになります。
■ Download
- 仮想COMポートから送られてきた文字をそのままエコーバックします。