これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションのXNUMXつを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドao-dbgです。
プログラム:
NAME
ao-dbg-cc1111プロセッサ用のXNUMX進デバッガ
SYNOPSIS
ao-dbg [-NS CPUタイプ] [-NS 周波数] [-c] [-r リッスンポート] [-Z リッスンポート] [-s] [-S] [-p
プロンプト] [-V] [-v] [-H] [-h] [-m] [-T ttyデバイス] [--tty ttyデバイス] [-NS アルトスデバイス]
[ - 端末 アルトスデバイス]
DESCRIPTION
ao-dbg 適切なcc1111ボードまたはcp1111のいずれかを介してcc2103プロセッサに接続します
そのチップで利用可能なGPIOピンを使用して、USBからシリアルコンバータボードへ。 それは提供します
s8051と呼ばれるsdccの51エミュレータと互換性のあるインターフェイスですが、
エミュレーションの代わりに実際のチップ。 SDCCデバッガーの修正バージョンを使用する
(sdcdb)、ソースレベルでターゲットマシンでのプログラム実行を制御できます。
OPTIONS
コマンドラインオプションは、8051エミュレータと互換性があるように設計されているため、
sdcdbで使用できます。 そのため、それらはすべてXNUMX文字の長さです。
-t CPUタイプ
8051エミュレータは、いくつかの異なるチップのXNUMXつとして動作できます。 奇妙なことに、本物
ハードウェアはできないため、このオプションは無視されます。
-X 周波数
同様に、エミュレータは、実際の任意の周波数で実行されているふりをすることができます
ハードウェアはできません。 無視されます。
-c
-s
-S
-v
-Vすべて無視されます。
-r リッスンポート、-Z リッスンポート
エミュレータとsdcdbは、ネットワークソケットを介して通信します。 このオプションは切り替わります
stdin / stdoutを介した通信から特定のリッスンまでのデバッガー
代わりにネットワークポート。 接続が確立されると、デバッガーは次を使用して続行します
コマンド入力および出力用のそのネットワークポート。 デバッガーはポート9756を使用し、
ao-dbgを起動する前に接続を試みるため、ao-dbgがこのポートでリッスンしている場合
sdcdbが開始される前に、sdcdbは既存のao-dbgインスタンスと通信することになります。
これは、ao-dbg自体のデバッグに役立つことがよくあります。
-p プロンプト
これにより、コマンドプロンプトが指定された文字列に設定されます。
-Pこれにより、コマンドプロンプトが単一のNUL文字に設定されます。 これはsdcdbで使用するためのものです。
-hこれは使用法メッセージを出力するはずですが、現在は何も役に立ちません。
-mこのオプションは、元の8051エミュレーターには存在せず、ao-dbgをダンプします。
sdcdbとの間で送受信されるすべてのコマンドと応答。
-Ttty-デバイス| --tty tty-device
これにより、デバッガーがターゲットとの通信に使用するttyデバイスが選択されます
端末。 特別な名前「BITBANG」は、ao-dbgにcp2103接続を使用するように指示します。
それ以外の場合、これは適切なcc1111デバッグに接続されたUSBシリアルポートである必要があります
ノード。
-DAltOS-デバイス| -デバイスAltOS-デバイス
接続されているデバイスを検索します。 これには、次のいずれかの引数が必要です
フォーム:
TeleMetrum:2
テレメトロム
2
製品名を省略すると、ツールは適切な製品を選択します。
シリアル番号を省略すると、ツールは使用可能なもののXNUMXつと一致します。
デバイス。
コマンド
開始すると、ao-dbgはcc1111に接続し、コマンドを読み取って実行します。
stdinから、またはsdcdbへのネットワーク接続。
コマンドラインとは異なり、ao-dbgには、これらの各コマンドの組み込みヘルプが含まれています。
'help'コマンド。 ほとんどのコマンドは、長い形式とXNUMX文字で使用できます
ショートフォーム。 以下では、短い形式は長い形式の後にコンマの後に続きます。
ヘルプ、 ? {指図}
引数なしで、使用可能なコマンドのリストを出力します。 引数付きで
特定のコマンドに関する詳細
やめる、q
ターゲットプロセッサの状態を変更せずに、アプリケーションを終了します。
di [開始] [終了]
imem(256バイトの「内部」メモリ)を最初から最後までダンプします(両端を含む)。
ds [開始] [終了]
sprsを最初から最後までダンプします(両端を含む)。 ほとんどのsprはで表示されますが
グローバルアドレススペース、そうでないものもあるので、「dx」の代わりにこのコマンドを使用して読み取ります
それら。
dx [開始] [終了]
外部(グローバル)メモリを最初から最後まで(包括的に)ダンプします。
セット、t [開始] {データ...}
プレフィックスで指定されたメモリスペースに格納します。プレフィックスは「xram」、「rom」、のいずれかです。
「iram」または「sfr」。 開始から始まるバイトを格納します。
ダンプ、d [始まりと終わり]
prefixで指定されたメモリスペースからダンプします。prefixは「xram」のXNUMXつです。
「rom」、「iram」または「sfr」。 最初から最後までダンプします(両端を含む)。
ファイル[ファイル名]
ROM領域の内容を含むIntel形式のXNUMX進ファイル(ihx)を指定します
cc1111にロードされます。 これは、ROMメモリをダンプする要求に応答するために使用されます
cc1111(遅い)から取得せずにコンテンツ。
pc、p {アドレス}
アドレス引数が指定されている場合、これによりプログラムカウンターが指定された値に設定されます
価値。 それ以外の場合は、現在のプログラムカウンター値が表示されます。
ブレーク、b [アドレス]
指定されたアドレスにブレークポイントを設定します。 これは組み込みのハードウェアを使用します
cc1111でのブレークポイントのサポート。 結果として、それはXNUMXつ以下をサポートします
一度にブレークポイント。 したがって、sdcdbの修正バージョンを使用する必要があります。
この制限内で機能するようにプログラムの実行を制御する方法を変更します。
クリア、c [アドレス]
指定されたアドレスからブレークポイントをクリアします。
run、r、go、g {start} {stop}
プログラムの実行を再開します。 start引数が存在する場合、それは始まります
そのアドレスで、それ以外の場合は現在のPCで実行を継続します。 停止した場合
引数が存在する場合、一時的なブレークポイントがそのアドレスに設定されます。 この
一時的なブレークポイントは、実行がヒットすると削除されます。
次に、n
ステップ51の命令。 元のsXNUMXプログラムでは、これはサブルーチンを無視します。
ただし、sdcdbはこの機能を必要としないため、ここでは使用できません。
ステップ、s
ステップXNUMXの命令。
ロード、l [ファイル名]
これは実装されていませんが、XNUMX進ファイルをフラッシュにロードすることになっています。 使用
代わりにccloadプログラム。
やめて、h
プロセッサを停止します。 これは、プログラムが実行されている間に送信できる唯一のコマンドです。
ランニング。 それ以外の場合は無視されます。
リセット、解像度
プロセッサをリセットします。 これにより、リセットピンがLowになり、デバッグモードが再度有効になります。 チェック
cc1111のドキュメントで、これが何をするのかを正確に確認できます。
statusこれは、cc1111デバッグステータスレジスタをダンプします。
info、iブレークポイント、b
現在のブレークポイントを一覧表示します。
情報、私は助けます、?
あなたが情報を得ることができるものをリストしてください。
stopこれは何も実行せず、との互換性を維持するためにのみ存在します
オリジナルの8051エミュレータ。
ボード 持ってくる デバッグ
このプログラムの本来の目的は、ソースデバッガーを
ハードウェアの場合、それ自体で低レベルのXNUMX進デバッガーとして使用することもできます。 特に、
すべてのcc1111ペリフェラルは、ao-dbgコマンドラインから直接操作できます。
ao-dbgを開始しています
まず、ターゲットのcc1111デバイスと中間のcp2103またはcc111ボードを確認します
すべて正しく接続されています。
$ ao-dbg
シミュレートされていないプロセッサへようこそ
>ステータス
CPUが停止しました
デバッグコマンドによって停止されました
>
LEDをオンにする
cc1111 GPIOピンの1つ、P0_1およびP1_XNUMXは、外部LEDを駆動できます。 に
これらを制御し、ポート1の方向ビットを設定して、これらの出力ピンを作成してから、
ポート1のデータを変更して、それらを高または低に設定します。
> set sfr 0xfe 0x02#P1DIRを0x2に設定
> set sfr 0x90 0x02#P1_1をhighに設定
> set sfr 0x90 0x00#P1_1をlowに設定
A / Dコンバーターの読み取り
0つのA / Dコンバータ入力は、それぞれPXNUMXピン、アース、
A / D電圧リファレンス、内部温度センサー、またはVDD / 3。 のXNUMXつを読むには
これらの値を使用して、使用するA / Dコンバータを選択し、変換プロセスを開始します。 NS
cc1111マニュアルには、144ページの入力を選択するための表があります。
A / Dユニットで使用するP0ピンのXNUMXつを構成するには、ADCCFGをプログラムします。
レジスタ、目的のピンに一致するビットを設定します。
> set sfr 0xf2 0x3f#6つのA / D入力すべてを有効にする
単一の変換をトリガーするために、A / Dユニットに「追加」を実行するように依頼します
変換。これは、シーケンス全体ではなく、単一の変換を実行することを意味します。
変換。 これは、3xB0のADCCON6レジスタによって制御されます。
> set sfr 0xb6 0xb2#0ビットの精度を使用してサンプルP2_12
> ds 0xba 0xbb#ADCデータの低レジスタと高レジスタをダンプ
> set sfr 0xb6 0xbe#内部温度センサーのサンプル
> ds 0xba 0xbb#ADCデータの低レジスタと高レジスタをダンプ
onworks.netサービスを使用してao-dbgをオンラインで使用する