<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種基于A(yíng)RM-Linux的FPGA程序加載方法

一種基于A(yíng)RM-Linux的FPGA程序加載方法

作者: 時(shí)間:2012-11-30 來(lái)源:網(wǎng)絡(luò ) 收藏


  4、嵌入式 的驅動(dòng)實(shí)現

  本文以模塊形式實(shí)現了運行于S3C2410上的linux驅動(dòng)程序,源文件如下(有關(guān)寄存器

  的設置參考S3C2410的數據手冊,以下源代碼未包含頭文件):

  #define GPIO_va_base 0x0F6000000

  //基于S3C2410 上的內核IO控制寄存器首地址映射后的虛擬地址

  #define _GPDCON PIO_va_base+0x30);

  #define _GPDUP PIO_va_base+0x38);

  #define _port_wr(addr,value) *(volatile unsigned int*)(addr)=value)

  //定義輸出

  #define _CS 8

  #define _RW 9

  #define _PROG 12

  #define FPGA_CCLK 14

  //定義操作

  #define ARM_GPDDAT (*(volatile u32 *)(GPIO_va_base+0x34))

  #define set_register_bit(x) ARM_GPDDAT=(1x)|ARM_GPDDAT

  #define clear_register_bit(x) ARM_GPDDAT=(~(1x))ARM_GPDDAT

  //定義輸入

  #define FPGA_INIT ((ARM_GPDDAT>>10)1)

  #define FPGA_BUSY ((ARM_GPDDAT>>11)1)

  #define FPGA_DONE ((ARM_GPDDAT>>13)1)

  #define FPGA 211

  //定義主設備號,和mknod /dev/fpga c 211 0匹配

  typedef char fpga_device_t;

  static fpga_device_t fpga_devices[257];

  char buf[1000000];

  int fpga_open(struct inode *, struct file *);

  ssize_t fpga_write(struct file *,const char *,size_t ,loff_t *);

  int fpga_release(struct inode*, struct file *);

  //初始化ARM的D組通用IO管腳

  void init_fpga(void){

  ARM_port_wr(GPIO_va_base+0x30,0x55555555);

  //FPGA_BUSY FPGA_DONE FPGA_INIT be set input

  ARM_port_wr(GPIO_va_base+0x34,0xFFFF);

  ARM_port_wr(GPIO_va_base+0x30,0x51055555);

  ARM_port_wr(GPIO_va_base+0x38,0);// put up

  set_register_bit(FPGA_CCLK);//set GCLK

  }

  static struct file_operations fpga_ctl_fops= {

  open: fpga_open,

  write: fpga_write,

  release: fpga_release,};

  int init_module(void) {

  printk("Hello,word,Now preparing FPGA......");

  printk("register FPGA......");

  register_chrdev(FPGA, "fpga", fpga_ctl_fops);

  printk("Done!");

  printk("Hello,word,success!");

  return 0;

  }

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


關(guān)鍵詞: ARM Linux FPGA 程序加載

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>