2013年9月10日火曜日

mbedのセミホスティングを使用する方法

セミホスティングを使用する方法の補足メモ。

mbedとLPC1114FN28をSWD接続する。
mbedLPC1114FN28
p21 dp12(SWDIO)
p22 dp3(SWCLK)
mbed側はDigitalInOutが設定できるピンならどれでも変更可能です。
接続例:


mbedのオンラインコンパイラでLPC1114FN28のプログラムを作成する。
SWDで文字を表示したい場合はSWDSerialクラスを使って文字を表示します。
LocalFileSystemはmbedでマウントしたディレクトリにアクセスにいきます。mbed側でディレクトリは変更可能です。
プログラム例:

#include "mbed.h"
#include "SWDSerial.h"
SWDSerial pc;
LocalFileSystem local("local");

int main()
{
    FILE* fp = fopen("/local/MBED.HTM", "r"); // SYS_OPEN
    if (fp) {
        for(int i = 0; i < 176; i++) {
            pc.putc(fgetc(fp)); // SYS_READ,SYS_WRITEC
        }
        fclose(fp); // SYS_CLOSE
    }
    exit(0); // SYS_EXIT
}

LPC1114FN28にコンパイルしたバイナリーをダウンロードします。
 不安定ですが、mbedに 1114FN28.LPC で保存すれば起動時に書き込みます。

mbedをリセットします。フラッシュ書き込み、ソフトウェアリセット、LPC1114FN28のプログラムの実行、セミホスティングの実行。
実行例:

mbedのMBED.HTMファイルを読み取って表示しています。

注意:
表示速度はUARTより非常に遅いです。
ファイルアクセスも遅いです。1バイト単位でmbedへの問い合わせが発生しています。

関連記事:
mbedでセミホスティング

(2013/9/10)
---

0 件のコメント: