下载此文档

设计以太网驱动.docx


文档分类:IT计算机 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
设计以太网驱动

  文章以S3C4510B的以太网驱动程序为例,给出了驱动程序的一般设计措施,具体描述了驱动程序的初始化,数据接受和数据发送过程。   本文设计了基于S3C4510B的以太网驱动程序,并通过串口输出。文章给出了对一般MAC
  outl;
  outl;
  outl;
  outl;
  outl;
  s3c4510_eth_fd_init;
  for
  {
  struct frame_desc_struct *fd_ptr;
  volatile unsigned long *fb_ptr;
  unsigned char *fb_data;
  int i;
  // 1. Get Tx frame descriptor & data pointer
  fd_ptr = gtx_ptr;
  fb_ptr = &fd_ptr-> frame_data_ptr;
  fb_data = fd_ptr->frame_data_ptr;
  // 2. Check BDMA ownership
  if
  return -1;
  // 3. Prepare Tx Frame data to Frame buffer
  memcpy;
  if ;
  fd_ptr->status_and_frame_lenght = ;
  // 5. Change ownership to BDMA
  fd_ptr->frame_data_ptr |= BDMA_owner;
  // 6. Enable MAC and BDMA Tx control register
  outl;
  outl;
  // 7. Change the Tx frame descriptor for next use
  gtx_ptr = ;
  return 0;
  }
  数据接受
  数据接受是指将网络上的数据帧接受并缓存于网卡的接受缓冲环中,然后由主机程序将缓存环的帧读走并存入内存中以备程序使用。从中可以看出,帧的接受过程提成两步:第一步通过本地DMA将帧存入接受缓冲环;第二步是通过远程DMA并在主机的配合下将接受缓冲环中的帧读入内存。
  一般设备收到数据后所有会产生一种中断,在中断解决程序中驱动程序申请一块sk_buff,从硬件读出数据放置到申请好的缓冲区里。接下来填充sk_buff中的部分信息。skb->dev = dev,鉴定收到帧的合同类型,填入skb->protocol。把指针skb->指向硬件数据然后丢弃硬件帧头。还要设立skb->pkt_type,标明第二层数据类型。可以是如下类型:PACKET_BROADCAST,链路层广播;PACKET_MULTICAST,链路层组播;PACKET_SELF,发给自己的帧;PACKET_OTHERHOST,发给她人的帧;最后调用netif_rx把数据传送给合同层。netif_rx里数据放入解决队列然后返回,真正的解决是在中断返回后来,这样可以减少中断时间 。部分参照程序如下:
  int s3c4510_eth_rcv
  {
  struct frame_desc_struct *fd_

设计以太网驱动 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人读书百遍
  • 文件大小14 KB
  • 时间2022-06-14