2010年6月30日水曜日

mbed NXP LPC1768 base board (beta)

私の手元にもmbedベースボードβ版が到着しました。
logic_starさんありがとうございます。


昨日対応したC328-7640(JPEGシリアルカメラ)を使ったアプリケーションなどを公開する予定です。
お楽しみに。

C328-7640 Camera Module Driver

SparkFunでお馴染みのJPEGシリアルカメラのmbed NXP LPC1768用ドライバを設計実装しました。
サンプルプログラムではmbedローカルファイルシステムにJPEGファイルを書き込むようにしてあります。


http://mbed.org/users/shintamainjp/programs/CameraC328

2010年6月28日月曜日

mbedで困ることありませんか?

mbedはプロトタイピングツールとして素晴らしいのですが、繋ぎたくなるものがほぼ決まっているようなポートなどを見ると、わざわざ配線するのも嫌になってきます。


そんなときに嬉しいのがmbed評価ベースボードです。(現在ベータ評価段階。)
@logic_starさんが設計したもので、それこそ「かゆい所に手が届く」仕様になっています。


ボードにはLCD, microSDカード, USB, LAN(RJ-45)を搭載。


ベースボードにはユニバーサル基板エリアもあります。
基本機能はmbed評価ベースボードでカバーしながら、独自機能をユニバーサル基板エリアに実装するといった使用形態が可能。


裏面は上記のようになっています。
おっと。
バッテリホルダもありますね。
バックアップできそうですね、あれが。

眠っているmbedありませんか?
そんなときはこのmbed評価ベースボードの出番です。


私はベータテストに参加します。
このブログでもベータ版の基板を取り上げて様々なレポートをしたいと考えています。

2010年6月25日金曜日

EDKの評価ライセンスが切れました・・・。


FreeRTOSのサンプルコード(EDK 7.1版)のEDK 12.1へのポーティング作業が終了し、これからデバッグというところでBRAMのサイズ制約にひっかかり、あえなくライセンス切れ。
動かしてみたいのですがこればかりは何ともなりません。

2010年6月22日火曜日

MicroBlaze上でFreeRTOSを動作させるための作業10

BRAMに収まらないのではないかと書きましたが、案の定何やらメッセージが出ています。

/cygdrive/c/Xilinx/12.1/ISE_DS/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze-xilinx-elf/4.1.2/../../../../microblaze-xilinx-elf/bin/ld: region ilmb_cntlr_dlmb_cntlr is full (freertos_0.elf section .bss)
/cygdrive/c/Xilinx/12.1/ISE_DS/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze-xilinx-elf/4.1.2/../../../../microblaze-xilinx-elf/bin/ld: section .heap [00000050 -> 0000044f] overlaps section .text [00000050 -> 00003637]
/cygdrive/c/Xilinx/12.1/ISE_DS/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze-xilinx-elf/4.1.2/../../../../microblaze-xilinx-elf/bin/ld: section .stack [00000450 -> 0000084f] overlaps section .text [00000050 -> 00003637]
/cygdrive/c/Xilinx/12.1/ISE_DS/EDK/gnu/microblaze/nt/bin/../lib/gcc/microblaze-xilinx-elf/4.1.2/../../../../microblaze-xilinx-elf/bin/ld: region ilmb_cntlr_dlmb_cntlr is full (freertos_0.elf section .bss)

ilmb_cntlr_dlmb_cntlr領域とは


LMB(Local Memory Bus)に接続されたメモリコントローラが管理する領域で、実態はBRAMインターフェースコントローラです。
メモリ空間はどういうサイズ設定にしたのかを確認すると


16Kのサイズで設定してあります。

では「これを倍にしてしまえ!」という話になりますが、32KにするとXC3S200では

ERROR:Pack:2310 - Too many comps of type "RAMB16" found to fit this device.
ERROR:Map:237 - The design is too large to fit the device. Please check the
Design Summary section to see which resource requirement for your design
exceeds the resources available in the device. Note that the number of slices
reported may not be reflected accurately as their packing might not have been
completed.

となりデバイスに収まりきりません。

EDK評価ライセンスも後2日と表示が出ています。
あと少しの作業で実機動作確認というところまで辿り着いたのですが困りました。

MicroBlaze上でFreeRTOSを動作させるための作業8

リファレンスが見つからない件は以下のような結果でした。
EDK 7.1からEDK 12.1への乗り換え時に参考になるかもしれません。

./src/port.o: In function `prvSetupTimerInterrupt':
../src/port.c:278: undefined reference to `XTmrCtr_mDisable'
../src/port.c:280: undefined reference to `XTmrCtr_mSetLoadReg'
../src/port.c:281: undefined reference to `XTmrCtr_mSetControlStatusReg'
../src/port.c:290: undefined reference to `XTmrCtr_mSetControlStatusReg'
../src/port.c:291: undefined reference to `XIntc_mAckIntr'

「XXX_mXXX」は「XXX_XXX」にした。命名規則を変更したようだ。

./src/port.o: In function `vTaskISRHandler':
../src/port.c:322: undefined reference to `XIntc_mAckIntr'
../src/port.c:328: undefined reference to `XIntc_mAckIntr'

「XXX_mXXX」は「XXX_XXX」にした。命名規則を変更したようだ。

./src/port.o: In function `vTickISR':
../src/port.c:345: undefined reference to `XTmrCtr_mGetControlStatusReg'
../src/port.c:346: undefined reference to `XTmrCtr_mSetControlStatusReg'

「XXX_mXXX」は「XXX_XXX」にした。命名規則を変更したようだ。

./src/serial.o: In function `xSerialPortInitMinimal':
../src/serial.c:96: undefined reference to `XUartLite_mDisableIntr'
../src/serial.c:99: undefined reference to `XIo_In32'
../src/serial.c:100: undefined reference to `XIo_Out32'
../src/serial.c:105: undefined reference to `XUartLite_mEnableIntr'
../src/serial.c:112: undefined reference to `XIntc_mAckIntr'

#include "xio.h"を追加した。
「XXX_mXXX」は「XXX_XXX」にした。命名規則を変更したようだ。

./src/serial.o: In function `xSerialPutChar':
../src/serial.c:145: undefined reference to `XUartLite_mIsTransmitFull'
../src/serial.c:167: undefined reference to `XIo_Out32'

#include "xio.h"を追加した。
「XXX_mXXX」は「XXX_XXX」にした。命名規則を変更したようだ。

./src/serial.o: In function `vSerialISR':
../src/serial.c:190: undefined reference to `XIo_In32'
../src/serial.c:197: undefined reference to `XIo_In32'
../src/serial.c:208: undefined reference to `XIo_Out32'

#include "xio.h"を追加した。
「XXX_mXXX」は「XXX_XXX」にした。命名規則を変更したようだ。

ということでほとんど実質変更なしといった結果でした。
EDKの評価ライセンスは後2日。
うーん。

AltStyle によって変換されたページ (->オリジナル) /