sdcc-usb

sdcc←  PIC日記?←  →sdccを飼い馴らす  →PIC18F4550


目次:




共通のお約束

  • コンパイルには sdccgputils を使います。
  • 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ポートから送られてきた文字をそのままエコーバックします。