⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 skyeye硬件模拟平台,第三部分 硬件仿真实现之四.htm

📁 你想没有硬件就跑μc OS吗
💻 HTM
📖 第 1 页 / 共 5 页
字号:
                      <TD><A 
                        href="http://www-900.ibm.com/developerworks/cn/linux/l-skyeye/part3/s4/index.shtml#author1">关于作者</A></TD></TR>
                    <TR>
                      <TD height=1><IMG height=5 alt="" 
                        src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                        width=160></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerworks/cn/linux/l-skyeye/part3/s4/index.shtml#rating">对本文的评价</A></TD></TR>
                    <TR>
                      <TD><IMG height=10 alt="" 
                        src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                        width=160></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
            <TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
              <TBODY>
              <TR>
                <TD width=160 bgColor=#000000 height=1><IMG height=1 alt="" 
                  src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                  width=160></TD></TR>
              <TR>
                <TD align=middle 
                background="SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files/bg-gold.gif" 
                height=5><B>相关内容:</B></TD></TR>
              <TR>
                <TD width=160 bgColor=#666666 height=1><IMG height=1 alt="" 
                  src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                  width=160></TD></TR>
              <TR>
                <TD>
                  <TABLE cellSpacing=0 cellPadding=1 width=160 border=0>
                    <TBODY>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerworks/cn/linux/l-skyeye/part1/index.shtml" 
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">SkyEye硬件模拟平台, 
                        第一部分: SkyEye 介绍</A></TD></TR>
                    <TR>
                      <TD height=1><IMG height=5 alt="" 
                        src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                        width=160></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerworks/cn/linux/l-skyeye/part2/index.shtml" 
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">SkyEye硬件模拟平台,第二部分: 
                        安装与使用</A></TD></TR>
                    <TR>
                      <TD height=1><IMG height=5 alt="" 
                        src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                        width=160></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerworks/cn/linux/l-skyeye/part3/s1/index.shtml" 
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">SkyEye硬件模拟平台,第三部分: 
                        硬件仿真实现之一</A></TD></TR>
                    <TR>
                      <TD height=1><IMG height=5 alt="" 
                        src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                        width=160></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerworks/cn/linux/l-skyeye/part3/s2/index.shtml" 
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">SkyEye硬件模拟平台,第三部分: 
                        硬件仿真实现之二</A></TD></TR>
                    <TR>
                      <TD height=1><IMG height=5 alt="" 
                        src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                        width=160></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerworks/cn/linux/l-skyeye/part3/s3/index.shtml" 
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">SkyEye 
                        硬件模拟平台,第三部分: 硬件仿真实现之三</A></TD></TR>
                    <TR>
                      <TD height=1><IMG height=5 alt="" 
                        src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                        width=160></TD></TR>
                    <TR>
                      <TD height=1><IMG height=5 alt="" 
                        src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                        width=160></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
            <TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
              <TBODY>
              <TR>
                <TD width=160 bgColor=#000000 height=1><IMG height=1 alt="" 
                  src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                  width=160></TD></TR>
              <TR>
                <TD align=middle 
                background="SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files/bg-gold.gif" 
                height=5><B>订阅:</B></TD></TR>
              <TR>
                <TD width=160 bgColor=#666666 height=1><IMG height=1 alt="" 
                  src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                  width=160></TD></TR>
              <TR>
                <TD>
                  <TABLE cellSpacing=0 cellPadding=1 width=160 border=0>
                    <TBODY>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerworks/cn/newsletter/index.html">developerWorks 
                        时事通讯</A></TD></TR>
                    <TR>
                      <TD height=1><IMG height=5 alt="" 
                        src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                        width=160></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerworks/cn/subscription/index.shtml">developerWorks 
                        订阅<BR xmlns:fo="http://www.w3.org/1999/XSL/Format">(订阅CD 
                        和下载)</A></TD></TR>
                    <TR>
                      <TD height=1><IMG height=5 alt="" 
                        src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                        width=160></TD></TR>
                    <TR>
                      <TD height=1><IMG height=5 alt="" 
                        src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                        width=160></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
            <TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
              <TBODY>
              <TR>
                <TD width=150 bgColor=#000000 colSpan=2 height=2><IMG height=2 
                  alt="" 
                  src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                  width=160></TD></TR>
              <TR>
                <TD width=150 bgColor=#ffffff colSpan=2 height=2><IMG height=2 
                  alt="" 
                  src="D:\新建文件夹\SkyEye硬件模拟平台,第三部分 硬件仿真实现之四.files\c(1).gif" 
                  width=160></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><SPAN 
      class=atitle2>网络芯片仿真</SPAN><BR>
      <TABLE cellSpacing=0 cellPadding=0 border=0>
        <TBODY>
        <TR vAlign=top align=left>
          <TD>
            <P>级别: 高级</P></TD></TR></TBODY></TABLE>
      <P><A 
      href="http://www-900.ibm.com/developerworks/cn/linux/l-skyeye/part3/s4/index.shtml#author1"><NAME>陈渝</NAME></A> 
      (<A href="mailto:yuchen@tsinghua.edu.cn">yuchen@tsinghua.edu.cn</A>) 
      <BR>清华大学<BR>2004 年 11 月 </P>
      <BLOCKQUOTE><ABSTRACT-EXTENDED>本系列文章的第三部分主要介绍了SkyEye硬件模拟平台的实现细节。主要内容包括SkyEye的总体设计、SkyEye的可扩展框架、SkyEye的关键数据结构、SkyEye对各种CPU的模拟实现、SkyEye对各种外设的模拟实现、如何安装使用SkyEye以及如何扩展SkyEye的仿真模块等。对SkyEye的深入了解,有助于对嵌入式硬件系统有更深入的认识,特别是对操作系统、驱动程序如何与嵌入式硬件系统进行交互有更深刻的了解。</ABSTRACT-EXTENDED></BLOCKQUOTE>
      <P><A name=IDAFSKTB><SPAN class=atitle2>1.1.6 
      SkyEye的网络模拟实现</SPAN></A><BR></P>
      <P><A name=IDAKSKTB><SPAN class=atitle3>1. 
      RTL8019AS网络芯片模拟的构思和设计概述</SPAN></A><BR>目前网络在嵌入式系统中应用越来越广泛,通过为SkyEye增加虚拟以太网芯片设备,使SkyEye支持ethernet网络接口模拟。这样在SkyEye硬件模拟平台上运行的操作系统能够与本地Linux主机进行网络通信,当然通过ipchains/iptables等包转发机制可以进一步支持直接跟Internet通信。</P>
      <P>鉴于目前嵌入式设备中广泛使用了NE2K 
      10Base-T兼容网络芯片,其中RTL8019AS又是比较有代表性的一种,购买也比较方便,我们就决定模拟它。设计方案完全基于真实的RTL8019AS(NE2000兼容,简称8019AS),但做了部份简化。简化掉的部分主要包括:</P>
      <UL xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <LI>一部分状态寄存器。主要是收发数据包的状态信息,一般在嵌入式系统中用的比较少,因此暂时没有加入模拟。
        <LI>16位模式DMA。对NE2K的芯片,8位DMA和16位DMA模式仅在收发数据效率上不同,但这对SkyEye来说效率并不是很重要,所以仅模拟了8位DMA模式。
        <LI>CPU从网络芯片收数据包的Remote DMA Read模式。由于8019AS提供了另一种更高效的Send 
        Command方式来收数据包,所以为简化起见,没有模拟Remote DMA Read。</LI></UL>
      <P>目前设计虚拟以太网芯片设备对简化的原则是:把虚拟网络芯片的驱动放到真实8019AS网络芯片上去,直接能用就可以了,目前还不能保证其它系统上的NE2K驱动能直接在SkyEye上用。</P>
      <P><A name=IDAWSKTB><SPAN class=atitle3>2. 
      虚拟8019AS网络芯片原理</SPAN></A><BR>SkyEye本身是一个硬件开发板的模拟器。虚拟8019AS网络芯片是虚拟开发板上一个相对独立的外部设备,这个设备有自己的内部数据结构和操作函数,完成相应的功能。但虚拟8019AS网络芯片对外的接口只是几个提供给SkyEye的API函数和它所占用的系统资源,如Memory 
      map 
      Io和IRQ等。网络芯片驱动程序看到的只是8019AS的寄存器和它占用的系统中断号,这些寄存器地址位于SkyEye模拟的开发板中某一段IO地址空间内,而SkyEye看到的是寄存器地址和虚拟8019AS网络芯片提供给SkyEye的API函数。如果运行在虚拟开发板上的网络芯片驱动程序读写这些寄存器地址,那么SkyEye会截获这些读写操作,并把它们转换成对虚拟8019AS网络芯片API接口nic_read和nic_write函数的调用,从而操作虚拟8019AS网络芯片,并收发数据。这个过程跟真实的硬件系统的逻辑操作是一致的。</P>
      <P>那么SkyEye跟虚拟8019AS网络芯片交换数据包的同时,8019AS是如何跟主机进行通讯的呢?这是通过Host主机的Linux上安装的tun/tap或vnet虚拟网络接口来实现的。tun/tap和vnet是Linux内核中的一个内核模块,它们模拟了一个简单的点对点网络环境,后文会有进一步的说明。虚拟8019AS网络芯片的整体结构如图 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -