[Armadillo:06856] Re: Armadillo-300 拡張バスについて
東海ファームウェア(株)
email@hidden
2011年 3月 4日 (金) 17:44:34 JST
お世話になります、TFC小林です。
抜粋したので、つじつまが合わないところがあるかもしれません。
ご指摘どおり、/dev/memを使用しています。
2つのアドレス空間をアクセスしたいので、
mmapが2つあります。
#define NS_MEM_MODULE_BASE_PA 0xA0700000
#define NS_MEM_MODULE_SIZE 0x00100000
#define PARAM_SIZE_MASK 0xffffff
#define EXT_FPGA_BASE_ADDR 0x70000000
#define PARAM_SIZE 0x1000000
unsigned short *mapadrs;
unsigned int *mapadrs2;
char *dev = "/dev/mem";
unsigned int data;
// レジスタアクセス空間の指定
fd = open(dev, O_RDWR);
if (fd < 0){
return -1;
}
mapadrs = (unsigned short*)mmap(0, PARAM_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, EXT_FPGA_BASE_ADDR);
mapadrs2 = (unsigned int*)mmap(0, NS_MEM_MODULE_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, NS_MEM_MODULE_BASE_PA);
if(mode==0){
volatile unsigned short* reg = (volatile unsigned short*)mapadrs;
data=reg[0];
reg[0]=(unsigned short)data;
}else{
volatile unsigned int* reg = (volatile unsigned int*)mapadrs2;
data=reg[0];
reg[0]=data;
}
以上、よろしくお願いします。
> 竹之下です。
>
> > CPUから拡張バスを通して、16bit幅でリード・ライトの
> > アクセスをしたいと思うのですが、
> > 現在、StaticConfigレジスタ(0xA0700260)=0x00000081を設定して
> > リード・ライトをそれぞれ1回のみ実行すると、
> > リードについては、
> > BLS0=0,BLS1=0で16bitアクセスが2回出力され、
> > ライトについては、
> > BLS0=0,BLS1=1で下位8bitアクセスが1回、
> > BLS0=1,BLS1=0で上位8bitアクセスが1回、
> > 出力されます。
> > リード、ライトともにアドレスは同じです。
> とのことですが、現在、どのようにして拡張バスにアクセスされていますか?
>
> 以前のメールでは、/dev/memを通してユーザーランドアプリケーションから
> という話が出ていたようです。
> http://lists.atmark-techno.com/pipermail/armadillo/2011-January/006529.html
>
> メモリアクセスをしている部分のソースコードを見せていただくことは可能でしょうか?
>
> TFC 小林 さんは書きました:
> > お世話になります、TFC小林です。
> >
> > Armadillo-300の拡張バス(CON12)について教えてください。
> >
> > CPUから拡張バスを通して、16bit幅でリード・ライトの
> > アクセスをしたいと思うのですが、
> > 現在、StaticConfigレジスタ(0xA0700260)=0x00000081を設定して
> > リード・ライトをそれぞれ1回のみ実行すると、
> > リードについては、
> > BLS0=0,BLS1=0で16bitアクセスが2回出力され、
> > ライトについては、
> > BLS0=0,BLS1=1で下位8bitアクセスが1回、
> > BLS0=1,BLS1=0で上位8bitアクセスが1回、
> > 出力されます。
> > リード、ライトともにアドレスは同じです。
> >
> > リードについては何故16bitが2回出力されるのか?
> > ライトについては何故8bitなのか?
> >
> > どのようにすれば、16bitでリード、ライト
> > 1回のアクセスにすることが出来るかご教授お願いします。
> >
> > 参考までにConfigレジスタ値(0xA0700000 - 0xA0700300)を
> > 読み出したファイルを添付させていただきました。
> >
> > よろしくお願いします。
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > armadillo mailing list
> > email@hidden
> > http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
>
> --
> Koyo Takenoshita
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
armadillo メーリングリストの案内