[Armadillo:05151] Re: ライブラリのコンパイル方法

佐原拓也 email@hidden
2010年 5月 7日 (金) 18:12:43 JST


佐原です。

 ドライバーの説明、ありがとうございます。理解が深まりました。

D2xx関数FT_Write() から libFTDI関数ftdi_write_data()への変更ですが、
 Armadillo500FX <-> FT2232H <-> CPU という接続にて、
 D2xxのMCU Host Bus Emulation Mode を使いたいです。
 libFTDIでも同じようにできますでしょうか?




> 溝渕です。
>
> > 1. libusbのクロス版を作成&インストール
> > 2. libftdi Version 0.17をarmクロス用にmake&インストール
> > 3. 自分のアプリをmake
> >   リンク時のオプションに-lftdiをつければいいはず。
> >
> > そして
> > 3.で自分のアプリをmakeしたのですが、最初と同じエラーになりました。
> > 元のリンク -lftdi2xx をコメントアウトし、-lftdiusb に変更したのですが、
> > リンクのオプション設定が間違っていますでしょうか。
>
> FT2232Hに対応したライブラリは2種類あります。
>
> 1. D2xx
> 2. libFTDI
>
> 1.はFTDIが公開している公式版のライブラリです。x86用のバイナリのみ配布し
> ているためarmでは使用できないようです。2.はオープンソースライブラリで
> す。ソースが公開されているため、arm用にビルド可能です。
>
> 1.と2.では、それぞれ関数に互換性が無いようです。エラーログに出ている
> FT_Write()はD2xx用の関数なので、使用することができません。
>
> 以下のコマンドを入力すると、libFTDIにFT_Write()が含まれていないことがわ
> かると思います。
> [ATDE2]$ wget
> http://www.intra2net.com/en/developer/libftdi/download/libftdi-0.17.tar.gz
> [ATDE2]$ tar zxvf libftdi-0.17.tar.gz
> [ATDE2]$ cd libftdi-0.17
> [ATDE2]$ grep -r FT_Write .
>
> libFTDIを使用する場合、FT_Write()はftdi_write_data()で代用することができ
> ると思いますがいかがでしょうか?
>
> 以上です。
>
> > Makefileの内容
> > ここから
> > # ROOTDIR=/usr/src/atmark-dist-20100310
> > ifndef ROOTDIR
> > ROOTDIR ?= ../atmark-dist-20100310
> > endif
> > ROMFSDIR =$(ROOTDIR)/romfs
> > ROMFSINST= romfs-inst.sh
> > PATH     := $(PATH):$(ROOTDIR)/tools
> > UCLINUX_BUILD_USER = 1
> > include $(ROOTDIR)/.config
> > LIBCDIR = $(CONFIG_LIBCDIR)
> > include $(ROOTDIR)/config.arch
> > EXEC = test
> > OBJS = test.o
> > all: $(EXEC)
> > $(EXEC): $(OBJS)
> > # $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS) -lftd2xx
> >  $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS) -lftdi
> > clean:
> >  -rm -f $(EXEC) *.elf *.gdb *.o *~
> > romfs:
> >  $(ROMFSINST) /bin/$(EXEC)
> > %.o: %.c
> >  $(CC) -c $(CFLAGS) -o $@ $<
> > ここまで。
> >
> > エラーは、最初と以下のように一緒です。
> > email@hidden:~/test$ <mailto:email@hidden:~/test$> make
> > arm-linux-gnu-gcc    -L../atmark-dist-20100310/lib -o test test.o -lc
> > -lgcc  -lftdi
> > test.o: In function `ae2_write_ana':
> > test.c:(.text+0x40): undefined reference to `FT_Write'
> > test.c:(.text+0x6c): undefined reference to `FT_Write'
> > test.o: In function `ae2_write_decb':
> > test.c:(.text+0x1b8): undefined reference to `FT_Write'
> > test.c:(.text+0x1e4): undefined reference to `FT_Write'
> > :上記と同じ繰り返し
> > collect2: ld returned 1 exit status
> > make: *** [test] エラー 1
> > email@hidden:~/test$ <mailto:email@hidden:~/test$>
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20100507/119f99f0/attachment.html>


armadillo メーリングリストの案内