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/20100810
下記PDFの様に配線します。
配線例 (PDF)
P2_10ピンをGNDに接続して、リセットスイッチを押し、シリアルターミナルから9600bpsで接続し、「?」をタイプすると、「Synchronized」という文字列が帰ってきたら成功です。
パッケージの豊富さのメリットを享受するため、Ubuntuを採用します。
apt-getかSynapticを使って、g++-4.5-arm-linux-gnueabiをインストールします。
VMwareを使用する場合は、シリアルポートをVMwareに認識させる必要があります。
lpc21ispをインストールします。
http://sourceforge.net/projects/lpc21isp/ からソースコードをダウンロードしてmake。
$ make $ sudo cp lpc21isp /usr/local/bin/
とりあえずLEDを点滅させてみます。
シリアルポートが /dev/ttyS0 に接続されていると仮定します。
$ tar zxvf blink.tar.gz $ cd blink $ make $ make write
次のような表示になれば成功です。
P2_10のジャンパピンを外して、リセットボタンを押したら、LEDが点滅します。
ubuntu 11.04のための訂正 (2011-08-07)
Ubuntu上で作業します。
以下のファイルをダウンロードし、作業用ディレクトリに展開しておきます。
soramimi@vm-ubuntu:~/develop/arm-elf$ cd gmp-5.0.2 soramimi@vm-ubuntu:~/develop/arm-elf/gmp-5.0.2$ mkdir build soramimi@vm-ubuntu:~/develop/arm-elf/gmp-5.0.2$ cd build soramimi@vm-ubuntu:~/develop/arm-elf/gmp-5.0.2/build$ ../configure --prefix=/usr/local --disable-shared soramimi@vm-ubuntu:~/develop/arm-elf/gmp-5.0.2/build$ make soramimi@vm-ubuntu:~/develop/arm-elf/gmp-5.0.2/build$ sudo make install
soramimi@vm-ubuntu:~/develop/arm-elf$ cd mpfr-3.0.1 soramimi@vm-ubuntu:~/develop/arm-elf/mpfr-3.0.1$ mkdir build soramimi@vm-ubuntu:~/develop/arm-elf/mpfr-3.0.1$ cd build soramimi@vm-ubuntu:~/develop/arm-elf/mpfr-3.0.1/build$ ../configure --prefix=/usr/local --disable-shared --with-gmp=/usr/local soramimi@vm-ubuntu:~/develop/arm-elf/mpfr-3.0.1/build$ make soramimi@vm-ubuntu:~/develop/arm-elf/mpfr-3.0.1/build$ sudo make install
soramimi@vm-ubuntu:~/develop/arm-elf$ cd mpc-0.9 soramimi@vm-ubuntu:~/develop/arm-elf/mpc-0.9$ mkdir build soramimi@vm-ubuntu:~/develop/arm-elf/mpc-0.9$ cd build soramimi@vm-ubuntu:~/develop/arm-elf/mpc-0.9/build$ ../configure --prefix=/usr/local --disable-shared --with-gmp=/usr/local --with-mpfr=/usr/local soramimi@vm-ubuntu:~/develop/arm-elf/mpc-0.9/build$ make soramimi@vm-ubuntu:~/develop/arm-elf/mpc-0.9/build$ sudo make install
コンパイルが終わったら、arm-elf-gccのシンボリックリンクarm-elf-ccを作成しておいてください。これを忘れるとnewlibのコンパイルに失敗します。
soramimi@vm-ubuntu:~/develop/arm-elf$ cd binutils-2.21.1 soramimi@vm-ubuntu:~/develop/arm-elf/binutils-2.21.1$ mkdir build soramimi@vm-ubuntu:~/develop/arm-elf/binutils-2.21.1$ cd build soramimi@vm-ubuntu:~/develop/arm-elf/binutils-2.21.1/build$ ../configure --target=arm-elf --prefix=/usr/local/arm-elf --enable-multilib --with-gmp=/usr/local --with-mpfr=/usr/local --disable-werror soramimi@vm-ubuntu:~/develop/arm-elf/binutils-2.21.1/build$ make soramimi@vm-ubuntu:~/develop/arm-elf/binutils-2.21.1/build$ sudo su root@vm-ubuntu:/home/soramimi/develop/arm-elf/binutils-2.21.1# make install root@vm-ubuntu:/home/soramimi/develop/arm-elf/binutils-2.21.1# cd /usr/local/arm-elf/bin root@vm-ubuntu:/usr/local/arm-elf/bin# ln -s arm-elf-gcc arm-elf-cc
CとC++を有効にしてconfigureしますが、まずCコンパイラだけインストールします。
soramimi@vm-ubuntu:~/develop/arm-elf$ cd gcc-4.5.3 soramimi@vm-ubuntu:~/develop/arm-elf/gcc-4.5.3$ mkdir build soramimi@vm-ubuntu:~/develop/arm-elf/gcc-4.5.3$ cd build soramimi@vm-ubuntu:~/develop/arm-elf/gcc-4.5.3/build$ ../configure --target=arm-elf --prefix=/usr/local/arm-elf --with-float=soft --disable-shared --with-newlib --enable-languages=c,c++ --enable-multilib --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local --with-system-zlib CFLAGS_FOR_TARGET="-Os -mthumb -msoft-float" soramimi@vm-ubuntu:~/develop/arm-elf/gcc-4.5.3/build$ make all-gcc soramimi@vm-ubuntu:~/develop/arm-elf/gcc-4.5.3/build$ sudo make install-gcc
コンパイルの時(一般ユーザ)とインストールの時(root)両方で export PATH=/usr/local/arm-elf/bin:$PATH をします。
soramimi@vm-ubuntu:~/develop/arm-elf$ cd newlib-1.19.0 soramimi@vm-ubuntu:~/develop/arm-elf/newlib-1.19.0$ mkdir build soramimi@vm-ubuntu:~/develop/arm-elf/newlib-1.19.0$ cd build soramimi@vm-ubuntu:~/develop/arm-elf/newlib-1.19.0/build$ export PATH=/usr/local/arm-elf/bin:$PATH soramimi@vm-ubuntu:~/develop/arm-elf/newlib-1.19.0/build$ ../configure --target=arm-elf --prefix=/usr/local/arm-elf CFLAGS_FOR_TARGET="-Os -mthumb -msoft-float" soramimi@vm-ubuntu:~/develop/arm-elf/newlib-1.19.0/build$ make soramimi@vm-ubuntu:~/develop/arm-elf/newlib-1.19.0/build$ sudo su root@vm-ubuntu:/home/soramimi/develop/arm-elf/newlib-1.19.0/build# export PATH=/usr/local/arm-elf/bin:$PATH root@vm-ubuntu:/home/soramimi/develop/arm-elf/newlib-1.19.0/build# make install
C++コンパイラをインストールします。
soramimi@vm-ubuntu:~/develop/arm-elf$ cd gcc-4.5.3 soramimi@vm-ubuntu:~/develop/arm-elf/gcc-4.5.3$ cd build soramimi@vm-ubuntu:~/develop/arm-elf/gcc-4.5.3$ make soramimi@vm-ubuntu:~/develop/arm-elf/gcc-4.5.3$ sudo make install
コンパイルが終了したら、P2_10ピンのジャンパピンをショートして、リセットスイッチを押してから、make writeするとLPCXpressoに書き込みが行われます。
tar zxvf ledlcd.tar.gz cd ledlcd make make write
書き込みが終わったら、ジャンパピンを外して、リセットスイッチを押すと、LEDが点滅しながら、LCDの数値がカウントアップします。