LPC1768のプログラムを開発するmbedかLPCXpressoのどちらかを選べといわれたら、初めてなら迷わずmbedをおすすめします。LPCXpressoは、code_red社のLPCXpresso用IDEが使えます。デバッグも含めた開発環境が整っています。デバッグは便利ですが。mbedで遊んだら、より安価なLPCXpressoに挑戦してみるのもいいでしょう。code_red社のLPCXpresso用IDEは、無料バージョンには、コードサイズ128KB制限があったり、C++に対応していなかったりで、いまいち使い勝手が良くありません。そこでIDEに頼らない開発環境を構築します。OSはUbuntuを使用します。Windows上でVMware内で走らせてもOKです。配線LPC-Linkは使用できませんので、ブートローダモードでプログラムを書き込みます。そのためにLPCXpressoにシリアルポートを接続します。【転載】http://ecrafts.g.hatena.ne.jp/Lynx-EyED/20100810LPC1768はリセット時にP2.10ピンがLowになっているとブートローダモードになります。ブートローダモードではTXD0(P0.2),RXD0(P0.3)を使用しプログラムをLPC1768にダウンロードします。下記PDFの様に配線します。(PDF)接続テストP2_10ピンをGNDに接続して、リセットスイッチを押し、シリアルターミナルから9600bpsで接続し、「?」をタイプすると、「Synchronized」という文字列が帰ってきたら成功です。OSの準備パッケージの豊富さのメリットを享受するため、Ubuntuを採用します。apt-getかSynapticを使って、g++-4.5-arm-linux-gnueabiをインストールします。VMwareを使用する場合は、シリアルポートをVMwareに認識させる必要があります。書き込みツールをインストールlpc21ispをインストールします。ソースコードをダウンロードしてmake。/usr/local/bin/クイックスタートとりあえずLEDを点滅させてみます。接続されていると仮定します。write次のような表示になれば成功です。P2_10のジャンパピンを外して、リセットボタンを押したら、LEDが点滅します。(2011-08-07)執筆中TODO必要最小限のlibcを構築する。mbed互換クラスを実装する。現状libcが貧弱です。newlibの関数を呼ぶと、たいてい正常に動作しません。mbed互換クラスが貧弱です。DigitalOutとBusOutとTextLCDしか実装していません。浮動小数点数(float/double)が使用できません。ソフトウェアエミュレーション関数(gcc-x.x.x/gcc/config/arm/ieee754-df.Sなど)が、ThumbではないARM命令を使用しているためと考えられます。C++のSTLの動作確認があまりできていません。C++のグローバルコンストラクタは使用できません。arm-elf-gcc開発環境を構築Ubuntu上で作業します。以下のファイルをダウンロードし、作業用ディレクトリに展開しておきます。installbinutilsコンパイルが終わったら、arm-elf-gccのシンボリックリンクarm-elf-ccを作成しておいてください。これを忘れるとnewlibのコンパイルに失敗します。arm-elf-ccgcc前半CとC++を有効にしてconfigureしますが、まずCコンパイラだけインストールします。installgcc後半C++コンパイラをインストールします。writeするとLPCXpressoに書き込みが行われます。write書き込みが終わったら、ジャンパピンを外して、リセットスイッチを押すと、LEDが点滅しながら、LCDの数値がカウントアップします。