[Suzaku:00761] Re: #include <asm/io.h>とした場合のコンパイルエラーについて

email@hidden
2007年 1月 29日 (月) 11:21:12 JST


大川様

お世話になっております。
伊藤です。

返事が遅くなり、すみません。

>その後、調査している過程で、私も同じ状況になりました。
>そして、当初、成功したのが疑問に思えてきました。。。
これについては...う〜ん、うむむ...

>CFLAGS += -I$(ROOTDIR)/linux-2.4.x/arch/ppc    ←この行を追加
上記通りにすると、コンパイルエラーが消えました。
とりあえず先に進めるようになりましたので、暫定ですがこれで進めていこうかと思います。

以上、大変ありがとうございました。
 

-----Original Message-----
From: email@hidden [mailto:email@hidden] On Behalf Of Tetsuya OHKAWA
Sent: Sunday, January 28, 2007 1:43 AM
To: SUZAKU general discussion list
Subject: [Suzaku:00760] Re: #include <asm/io.h>とした場合のコンパイルエラーについて

大川です。

コンパイル時の引数などは、私の手元と同じですね。
その後、調査している過程で、私も同じ状況になりました。
そして、当初、成功したのが疑問に思えてきました。。。

取り急ぎ、報告です。
以下のように1行を追加するとエラー回避はできます。

--- Makefile

LIBCDIR = $(CONFIG_LIBCDIR)
include $(ROOTDIR)/config.arch

CFLAGS += -I$(ROOTDIR)/linux-2.4.x/arch/ppc    ←この行を追加

OBJS = memrw.o
all: $(OBJS)
clean:



email@hidden wrote:
> 大川様
>
> 伊藤です。
> お世話になります。
>
>   
>> memrc.c をコンパイルしている所(コマンドライン)を、
>> 見せてもらえますでしょうか?
>> #ちょうど、上記エラーの上の行
>>     
> 以下がmakeをかけたときのメッセージの全てです。
> email@hidden:~/uClinux-dist-20051110-suzaku6/memrw$make
> powerpc-linux-gcc  -c -O2  -Dlinux -D__Linux__ -Dunix -DEMBED 
> -nostdinc -I/home/ 
> somebody/uClinux-dist-20051110-suzaku6/lib/uClibc/include 
> -I/home/somebody/uClin ux-dist-20051110-suzaku6/lib/libcrypt_old 
> -I/home/somebody/uClinux-dist-20051110
> -suzaku6 -idirafter /usr/lib/gcc-lib/powerpc-linux/3.3.5//include 
> -I/home/somebo dy/uClinux-dist-20051110-suzaku6//include -o memrw.o 
> memrw.c In file included from 
> /home/somebody/uClinux-20051110-suzaku6/lib/uClibc/in
> clude/asm/io.h:27,
>                           from memrw.c:14:
> /home/somebody/uClinux-dist-20051110-suzaku6/lib/uClibc/include/asm/ibm4xx.h:82:
> 30: platforms/suzaku.h: No such file or directory
> make: ***[memrw.o]Error 1
> email@hidden:~/uClinux-dist-20051110-suzaku6/memrw$
>
> 以上、お手数ですがよろしくお願いいたします。
>  
>
> -----Original Message-----
> From: email@hidden 
> [mailto:email@hidden] On Behalf Of Tetsuya 
> OHKAWA
> Sent: Friday, January 26, 2007 4:27 PM
> To: SUZAKU general discussion list
> Subject: [Suzaku:00758] Re: #include <asm/io.h>とした場合のコンパイルエラーについて
>
> 大川です。
>
> email@hidden wrote:
>   
>> お世話になっております。
>> 伊藤と申します。
>>
>> 早速ですが...
>> 自作のデバイスドライバにてinb()、outb()のAPIを使うため、#include <asm/io.h>とすると
>> 【「platform/suzaku.h」が見つかりません】旨のコンパイルエラーとなってしまいます。
>> お手数ですが対処方法を教えてください。
>>
>> 尚、各種情報は以下の通りです。
>> ●***  ↓のフォルダにsuzaku.hはあります ***
>> /home/somebody/uClinux-dist-20051110/linux-2.4.x/arch/ppc/platform/
>>
>> ●*** makeの実行 ***
>> 「/home/somebody/uClinux-dist-20051110/」に「memrw」フォルダを作成し、
>> その中にソースファイル(memrw.c)&makefileを置いています。
>> /home/somebody/uClinux-dist-20051110/memrwにてmake実行
>>
>> ●*** makefile ***
>> ifndef ROOTDIR
>> #ROOTDIR=../uClinux-dist-20051110-suzaku6
>> ROOTDIR=/home/somebody/uClinux-dist-20051110-suzaku6
>> 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
>>
>> OBJS = memrw.o
>> all: $(OBJS)
>> clean:
>> 	-rm -f $(OBJS)
>> %.o: %.c
>> 	$(CC) -c $(CFLAGS) -o $@ $<
>>
>> ●**** コンパイルエラーは以下の内容です ****
>> In file included from
>> /home/somebody/uClinux-dist-20051110-suzaku6/lib/uClibc/
>> include/asm/io.h:27, from memrw.c 14:
>> /home/somebody/uClinux-dist-20051110-suzaku6/lib/uClibc/include/asm/ibm4xx.h:82:
>> 30: platforms/suzaku.h: No such file or directory
>> make: ***[memrw.o]Error 1
>>     
> こちらでも同じような状態でテストしましたが、
> 上記エラーは出てきませんでした。
>
> memrc.c をコンパイルしている所(コマンドライン)を、
> 見せてもらえますでしょうか?
> #ちょうど、上記エラーの上の行
>
>   
>> ●**** ソースファイルは以下の内容です(必要箇所抜粋)****
>> #define __KERNEL__
>> #define	MODULE
>>
>> #include <linux/config.h>
>> #include <linux/kernel.h>
>> #include	 <linux/module.h>
>> #include	 <linux/init.h>
>> #include	 <linux/fs.h>		// file_operations
>> #include	 <linux/sched.h>
>> #include <linux/types.h>
>> #include <linux/errno.h>
>> #include <linux/ioport.h>
>> #include	 <linux/string.h>	// copy_to_user/copy_from_user
>> #include <asm/io.h>
>> #include	 <asm/uaccess.h>
>> /********************************************************************
>> * ******************/ static int memrw_read( struct file *file, char 
>> *user_buf, size_t u_count,  loff_t *lo) {
>> 	int cnt=0,err=0;
>> 	unsigned short *ptr;
>>
>> 	memset( &kern_buf, 0, sizeof( kern_buf ));	/* Kernel領域バッファ初期化	*/
>> 	ptr = (unsigned short *)MEMRW_BASE_ADR;
>>
>> 	for( cnt=0; cnt<u_count; cnt++ )
>> 		kern_buf[cnt] = inb( ptr++ );	/* DataRead */
>>
>> 	if( 0 != copy_to_user( user_buf, &kern_buf, cnt ) )
>> 		return -1;
>>
>> 	return( cnt );
>> }
>> /********************************************************************
>> * ******************/ static int memrw_write( struct file *file, 
>> const char *user_buf, size_t u_count,  loff_t *lo) {
>> 	int cnt, err;
>> 	unsigned short *ptr;
>>
>> 	err = copy_from_user( &kern_buf, user_buf, MEMRW_CNT_MAX );
>> 	ptr = (unsigned short *)MEMRW_BASE_ADR;
>>
>> 	for( cnt=0; cnt<u_count; cnt++ )
>> 		outb( kern_buf[cnt], ptr++ );	/* DataWrite */
>>
>> 	return( cnt );
>> }
>>
>> 以上、お手数ですがご教示の程よろしくお願いします。
>>
>> _______________________________________________
>> suzaku mailing list
>> email@hidden
>> http://lists.atmark-techno.com/mailman/listinfo/suzaku
>>   
>>     

_______________________________________________
suzaku mailing list
email@hidden
http://lists.atmark-techno.com/mailman/listinfo/suzaku




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