先日購入した LPCXpresso LPC1768 で FreeRTOS を動かしてみた。FreeRTOS の LPC1768 での動作サンプルとして用意されている Red Suite + デモボード用のコードをベースに LPCXpresso 用に調整する。LCD 表示はとりあえず無視して Ether と USB の動作確認をおこなうことが目的。このデモボードとは Ether PHY チップが異なっているため、最低限この部分の修正が必要になる。これについては kenjia さんが既に対応されていたものを利用させていただいた。
まず、"NXP LPC1768 Cortex M3 Red Suite Demo" の手順にしたがって FreeRTOS をビルドする。
/* #error The batch file Demo\CORTEX_LPC1768_GCC_RedSuite\CreateProjectDirectoryStructure.bat must be executed before the first build. After executing the batch file hit F5 to refrech the Eclipse project, then delete this line. */
/*-----------------------------------------------------------
* Ethernet configuration.
*-----------------------------------------------------------*/
/* MAC address configuration. */
#define configMAC_ADDR0 0x00
#define configMAC_ADDR1 0x12
#define configMAC_ADDR2 0x13
#define configMAC_ADDR3 0x10
#define configMAC_ADDR4 0x15
#define configMAC_ADDR5 0x11
/* IP address configuration. */
#define configIP_ADDR0 192
#define configIP_ADDR1 168
#define configIP_ADDR2 1
#define configIP_ADDR3 201
/* Netmask configuration. */
#define configNET_MASK0 255
#define configNET_MASK1 255
#define configNET_MASK2 255
#define configNET_MASK3 0
typedef char * caddr_t;
これでとりあえずバイナリはできるようになったが、LPCXpresso 1768 に合わせる作業が残っている。オリジナルのターゲットでは Ether PHY デバイスに DP83848C を使用しているが、LPCXpresso では LAN8720 が使用されているのだ。
USE_XPRESSO=1
Ether のコネクタはパルストランス内蔵のものを使う。配線例はhttp://www.page.sannet.ne.jp/kenjia/J_LPC1768_2nd.html などを参考に。私はスイッチサイエンスから購入した MagJack コンパチ品を使用したが、これは GND ピンが出ていないため、フレームから取った。USB は OTG であり、FreeRTOS のサンプルでは CDC として動作するため、B コネクタを付けた。USB からの Vcc は接続していない。どちらも同じスイッチサイエンスから購入したブレッドボード用の変換基板を使って配線した。
Ether のテストは PC の web browser から最初に設定した IP アドレスで http://192.168.1.201/ のようにアクセスすればよい。USB はケーブルを接続し、FreeRTOSDemo_RDB1768 フォルダ内の usbser.inf でデバイスを登録すると COM デバイスとして認識されているから、TeraTerm などで接続するとキー入力がエコーバックされる。あれ、文字化けしている。他に LED を用いての IO ポートのテストまでは出来る。LCD は接続しておらず、コードもそのまま残しているが、他の動作にはとりあえず問題ない。ただ、ping (ICMP_ECHO)の応答がダブって返ることが気になって調べてみた。http://comments.gmane.org/gmane.network.uip.user/1706 などによると、そのような実装であるような記述があったが、コードを見ても良く判らない。
おそらく携帯電話等からは投稿できません。日本語文字列を含まないコメントやトラックバック、および当サイトへの言及を含まないトラックバックは御遠慮いただいております。また、90日以上経過した記事へのコメントはできません。