/* * minimal monitor for LPC1830-Xplorer * by uratan! 2012.10.10 */ LPC1830-Xplorer にて、USART3-boot にてロード・実行する *最小の構成のたたき台*としてのファームウェアです。 シリアルを console としてメモリのダンプ・エディット他が できるモニターが走ります。 *FILES* 00README.txt --- このファイル Makefile --- make.exe 用の Makefile link.cmd --- リンカースクリプト Startup.S --- CPU スタートアップ (bss 初期化すら無し) main.c --- mini monitor 本体 (usart3 初期化すら無し) rprintf.c --- printf()関数 (WinARM_20060606.zip 付属のサンプルより) boot-test.bin --- minimon.bin を uart-boot 用に追加工したもの。 コンパイラは WinARM の WinARM_20080331_testing.zip の gcc を使用しています。 make.exe すると minimon.bin を作成します。 uart-boot に使用するためには、これに header(16byte) と、コード長を 512バイト単位にするための filler が必要ですが、これは別途手作業で 行っています。 (私は xxd.exe のようなファイルを dump/de-dump する) (ツールを使ってテキストエディタで行っています) まずは 'boot-test.bin' をそのまま試してみてください。 *手順* [1] Xplorer から 3.3V→RS-232C へのレベルコンバーターを経由して PC とシリアル接続します。Xplorer 側は外部コネクタ J10 の pin#13 (マニュアルでは I2C1_SDA) が U3_TxD (LPC1830が出力) に、 pin#14 (マニュアルでは I2C1_SCL) が U3_RxD (LPC1830に入力) に なります。 [2] Tera Term を使用してシリアル回線を開きます。パラメータは 例えば 57600bps/8bit/non-parity/1stopbit あたりで。 [3] Xplorer の boot-SW を #1 から ON-ON-ON-off にします。 [4] ボードリセット後に Tera Term より '?' を送信すると 'OK' が返ります。 [5] メニュー「File」→「Send file」にて 'boot-test.bin' を送信します。 オプションの「binary mode」を忘れないでください。 [6] 緑・青の LED が点灯し、端末にメッセージが表示されれば成功です。 *boot-header* 細かいことは LPC1830 のマニュアルを見ていただくとして、ダウンロード データの先頭 16バイトのヘッダーデータはおおむね以下の内容となります。 ここで下線部には、512バイトframe単位でのダウンロードデータ長を設定します。 +---------------------------------------------------------- |FFFFFFF0 : 1A FF 04 00 55 55 55 55 55 55 55 55 FF FF FF FF | ~~~~~ +---------------------------------------------------------- 最終データの長さは (16 + 512xframe長)バイトとなります。 この長さになるようにお尻にはダミーデータを追加してください。 -- uratan@st.rim.or.jp