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