“ hello world ”

73
“Hello world” 张张张

Upload: oksana

Post on 24-Jan-2016

52 views

Category:

Documents


0 download

DESCRIPTION

“ Hello world ”. 张彦龙. 实验综述. 实验目的: 两台 PC 可以通过 netmagic08(NM08) 平台进行数据传输。 我们以最简单的两台主机发送 ping 报文为例进行实验说明。 实验方案: 机器 1 连接到 NM08 的 1 号 端口对 NetMagic08 进行配置和管理 。 机器 2 连接到 NM08 的 2 号 端口 机器 3 连接到 NetMagic08 的 3 号 端口 端口 2 和端口 3 之间 发送 ping 报文 报文 不 经过任何修改直接进行转发。. 实验 准备. 硬件设备准备: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: “ Hello world ”

“Hello world”

张彦龙

Page 2: “ Hello world ”

实验综述 实验目的:

两台 PC 可以通过 netmagic08(NM08) 平台进行数据传输。

我们以最简单的两台主机发送 ping 报文为例进行实验说明。

实验方案: 机器 1 连接到 NM08 的 1 号端口对 NetMagic08 进行配

置和管理。 机器 2 连接到 NM08 的 2 号端口 机器 3 连接到 NetMagic08 的 3 号端口 端口 2 和端口 3 之间发送 ping 报文 报文不经过任何修改直接进行转发。

Page 3: “ Hello world ”

实验准备 硬件设备准备:

一台可用的 netmagic 和三台 pc 硬件运行环境准备

QuartusII (推荐 Quartus11.0 版本) “hello world ” 程序代码

软件运行环境准备 操作系统: Red Hat Enterprise Linux 5 内核版本: 2.6.18.8 工具包版本: libnet-1.1.4 libpcap-1.1.1 NMAC 函数库

Page 4: “ Hello world ”

设备连接方式

Page 5: “ Hello world ”

Netmagic 配带设备清单 电源线(一根) 电源适配器(一个) 10pin 延长线(一根) USB 转换线(一根) USB Blaster 模块(一个) 光电接口转换器 ( 四个 )

Page 6: “ Hello world ”

Netmagic 的电源连接方式 电源的连接

一台 netmagic 会配带一个电源线和一个电源适配器

电源线和电源适配器的连接示意图

Page 7: “ Hello world ”

Netmagic 的 USB Blaster 连接方式 USB Blaster 线的连接方法

USB 转换线与 USB Blaster 模块的连接示意图

数据线与 USB Blaster 模块的连接示意图

Page 8: “ Hello world ”

硬件设备连接方式

网线与 NM 连接示意图 NM 光电转换连接示意图

网线与 PC 连接示意图 NM 数据线连接示意图( JTAG/Flash )

Page 9: “ Hello world ”

硬件运行环境准备

Page 10: “ Hello world ”

Quartus II 在实验实施之前请确保您的 PC 上应经安装了

Quartus 软件程序,并可以正常使用,界面如下图所示。

Page 11: “ Hello world ”

“Hello world” 实例下载 --1 打开 netmagic 网页的首页,在页面中的 source

code downlad 模块中选择 more… 选项。

网址: http://www.netmagic.org。

Page 12: “ Hello world ”

“Hello world” 实例下载 --2 单击 more… 进入下一级页面后,在 netmagic

demonstration project 模块中单击 Download new! 下载

Page 13: “ Hello world ”

工程载入 Quartus 测试实例代码下载完后就可以把它加入到 Quartus 具体加载步骤:

找到下载文件所在的位置 双击文件中名为 netFPGAmini.qpf 的文件 等待 Quartus 正常打开后,工程加载完成

Page 14: “ Hello world ”

netFPGAmini.qpf 文件位置

Page 15: “ Hello world ”

加载完成后界面

Page 16: “ Hello world ”

PC 机配置说明 由于我们的实验是以发送 ping 包的例,因此两台主

机应该将 IP 地址设置为同一网段内。 另外,在实现前两台主机应把自已的防火墙设置为关

闭状态。

Page 17: “ Hello world ”

Altera USB-Blaster 驱动的安装 正确插好下载线后,打开 NetMagic 的电源开关, NetMagic 处于

加电状态系统将提示安装硬件驱动 , 如下图所示

此时我们可以按照提示进行操作,在选择驱动文件的步骤中选择ALTERA USB Blaster 的驱动目录: Quartus II 10.0 的安装目录下: quartus\drivers\usb-blaster\x32\usbblst.inf 。

Page 18: “ Hello world ”

软件运行环境准备

Page 19: “ Hello world ”

Linux 环境准备 NetMagic 08 的软件开发、调试和管理等操作都是

使用 Linux 系统进行操作。在这里我们可以使用在虚拟机中安装 Linux 操作系统的方法进行操作,使其和硬件开发在同一台计算机上完成,不用重新再找一台单独安装 Linux 操作系统的计算机。

我们以下以 linux 在 vmware 虚拟机中为例进行实验说明。

我们使用的 linux 的版本为 Red Hat Enterprise Linux 5 。

Page 20: “ Hello world ”

VMware 中运行 linux

虚拟机中 Linux 安装完成界面示意图

Page 21: “ Hello world ”

Linux 在 vmware 中运行效果

Linux 的开机界面示意图

Page 22: “ Hello world ”

Libpcap 的下载 --1 打开 netmagic 网页的首页,在页面中的 source

code downlad 模块中选择 more… 选项。

网址: http://www.netmagic.org。

Page 23: “ Hello world ”

Libpcap 的下载 --2 单击 more… 进入下一级页面后,在 Libpcap and

Libnet 模块中单击 Download libpcap-1.1.1 now! 下载

Libpcap 软件包下载页面示意图

Page 24: “ Hello world ”

Libpcap 的安装步骤 --1 将 libpcap 安装包解压到本地

输入命令: tar –zxvf libpcap-1.1.1.tar.gz

tar 命令示意图

Page 25: “ Hello world ”

Libpcap 的安装步骤 --2 进入到 libpcap-1.1.1 目录,执行 configure 命令进

行配置 cd libpcap-1.1.1 输入命令: cd libpcap-1.1.1

./configure

configure 命令示意图

Page 26: “ Hello world ”

Libpcap 的安装步骤 --3 执行 make 命令进行编译

输入命令 :make

make 命令示意图

Page 27: “ Hello world ”

Libpcap 的安装步骤 --4 执行 make install 完成安装

输入命令: make install

make install 命令示意图

Page 28: “ Hello world ”

Libnet 的下载 --1 打开 netmagic 网页的首页,在页面中的 source

code downlad 模块中选择 more… 选项。

网址: http://www.netmagic.org。

Page 29: “ Hello world ”

Libnet 的下载 --2 单击 more… 进入下一级页面后,在 Libpcap and

Libnet 模块中单击 Download libnet-1.1.4 now! 下载

Libnet 软件包下载页面示意图

Page 30: “ Hello world ”

Libnet 的安装步骤 --1 解压 libnet 安装包到本地

输入命令: tar –zxvf libnet-1.1.4.tar.gz

tar 命令示意图

Page 31: “ Hello world ”

Libnet 的安装步骤 --2 进入到 libnet-1.1.4 目录,执行 configure 命令进行

配置; 输入命令: cd libnet-1.1.4 ./configure

configure 命令示意图

Page 32: “ Hello world ”

Libnet 的安装步骤 --3 执行 make 命令进行编译

输入命令: make

make 命令示意图

Page 33: “ Hello world ”

Libnet 的安装步骤 --4 执行 make install 完成安装。

输入命令: make install

make install 命令示意图

Page 34: “ Hello world ”

NMAC 函数库下载 --1 打开 netmagic 网页的首页,在页面中的 source

code downlad 模块中选择 more… 选项。

网址: http://www.netmagic.org。

Page 35: “ Hello world ”

NMAC 函数库下载 --2 单击 more… 进入下一级页面后,在 NMAC Source

Code 模块中单击 Download new! 下载

NMAC 函数库下载示意图

Page 36: “ Hello world ”

NMAC 的函数库编译步骤 --1 解压 NMAC 安装包到本地

输入命令: tar –xvf nmac.tar

tar 命令示意图

Page 37: “ Hello world ”

NMAC 的函数库编译步骤 --2 进入到 nmac 目录,运行 ./Compile 编译 nmac 函

数库 输入命令: cd nmac

./compile

compile 命令示意图

Page 38: “ Hello world ”

NMAC 的函数库编译步骤 --3 nmac 文件夹下提供了一个名为 debug 的通用命令

行调试程序,可以运行 debug 程序进行设备调试和功能测试 . 输入命令: ./debug

debug 命令示意图

Page 39: “ Hello world ”

实验演示

Page 40: “ Hello world ”

实例说明 为了方便读者理解和使用 NetMagic 平台,我们准备了一

个名为 netFPGAmini 的测试实例,其功能是在 NetMagic 的外部端口 2 和外部端口 3 之间直接进行报文拷贝,外部控制主机通过端口 1 对平台进行配置管理。

需要说明的是,在大多数硬件代码和软件代码里面,对于端口号的定义,都是从 0 开始的,这和对数组的定义是一致的,而在设备的外部端口标识上,一般都是从 1 号开始的。因此当我们讲在外部端口 2 和外部端口 3 之间进行报文转发时,对应硬件或软件代码,实际上是在 1 号和 2 号端口间进行报文转发。它们之间的关系是:外部端口号 = 代码端口号+1 。

直接拷贝的意思是,从前导符到 CRC校验值,整个以太网帧传输期间,不修改报文的任何内容,直接在端口 2 和端口 3之间进行转发。

Page 41: “ Hello world ”

实验演示的操作步骤 硬件设备的连接

Quartus 工程的运行

软件的配置

Page 42: “ Hello world ”

硬件设备的连接

Page 43: “ Hello world ”

硬件设备的连接—电源连接

电源连接示意图

电源连接 NM 示意图

Page 44: “ Hello world ”

硬件设备的连接— USB Blaster 连接

USB Blaster 连接示意图

USB Blaster 连接 NM 示意图

USB Blaster 连接 PC 示意图

Page 45: “ Hello world ”

硬件设备的连接—网线连接

网线连接 NM 示意图

网线连接 PC 示意图

Page 46: “ Hello world ”

Quartus 工程的运行

Page 47: “ Hello world ”

Quartus 工程的运行 --1 工程载入后单击 hierarchy 标签 如果加载正确,则显示下图所示界面

Page 48: “ Hello world ”

Quartus 工程的运行 --2 工程载入正确单击 files 标签。 在 files 标签中双击树形列表中的 files 文件夹图标。

如图所示:

Page 49: “ Hello world ”

Quartus 工程的运行 --3 双击 Files 文件夹图标后,软件弹出“ Settings-

netFPGAmini” 对话框。 在此对话框选中的左框管理文件树中选

择“ Libraries” 单击右框 Global library name 文本框后的 按钮。

Page 50: “ Hello world ”

Quartus 工程的运行 --4 单击 按钮后弹出“浏览文件夹”对话框。 选择你工程所在文件夹。

Page 51: “ Hello world ”

Quartus 工程的运行 --5 打开工程文件夹的树。 在树结构中打开 sfp 文件夹,选

中“ triple_speed_ethernet-llibrary” 文件夹 , 单击“确定”。

Page 52: “ Hello world ”

Quartus 工程的运行 --6 单击”确定”后, Settings-netFPGAmini” 对话框

中的“ Global library name“ 文本框中会显示出库文件的路径,然后单击 按钮。Add

Page 53: “ Hello world ”

Quartus 工程的运行 --7 单击 按钮后,库路径就会添加到“ Libraries” 文本框中,然后单击 按钮,库添加完成。OK

Page 54: “ Hello world ”

Quartus 工程的运行 --8 库添加完成后,单击工具栏中的 按钮开始编译

工程,开始编译后可以选择 Tasks 标签查看编译的进度。

Page 55: “ Hello world ”

Quartus 工程的运行— 9 编译完成后,在 Tools 菜单中选择 SignalTap II

Logic Analyzer启动 SignalTAP 。

Page 56: “ Hello world ”

Quartus 工程的运行— 10 进入 SignalTap Logic Analyzer 后,单击右边的

JTAG框中的 Hardware 文本框后面的 按钮。Setup…

Page 57: “ Hello world ”

Quartus 工程的运行— 11 单击 后弹出 Hardware Setup 的对话框 , 在

Available hardware items 文件框下选择” USB-Blaster” 后单击 按钮关闭对话框

Setup…

Close

Page 58: “ Hello world ”

Quartus 工程的运行— 12 关闭 Hardware Setup 对话框后 JTAG框显示的内容

如下图所示。 单击 按钮开始向 NM烧写程序。

Page 59: “ Hello world ”

Quartus 工程的运行 --13 烧写完成后,在“ Instance Manager”框中双

击“ input_ctrl_packets” 项。选择 标签。 设置触发条件为:当信号 cdp2um_data_valid 上升沿到达时采样。

Page 60: “ Hello world ”

Quartus 工程的运行 --14 触发条件设置完成后机器就可以这送 ping 包了, 在发包后可以选择 Instance Manager 中的实例后单

击 按钮开始自动分析数据 。

Page 61: “ Hello world ”

Quartus 工程的运行 --15 开始分析波形后, input_ctrl_packets 实例的波形

如下所示。

output_ctrl_packets 实例的波形如下所示。

Localbus 实例的波形如下所示。

Page 62: “ Hello world ”

软件的配置

Page 63: “ Hello world ”

nm-debuger 设置 我们可以在机器 1 上,通过一个叫做 nm-debuger

调试工具读取和设置内部寄存器。 nm-debuger 是我们利用 NMAC协议和函数库开发

的一个专门用于 NetMagic08 平台的调试小工具 .

Page 64: “ Hello world ”

nm-debuger 下载 --1 打开 netmagic 网页的首页,在页面中的 source

code downlad 模块中选择 more… 选项。

网址: http://www.netmagic.org。

Page 65: “ Hello world ”

nm-debuger 下载 --2 单击 more… 进入下一级页面后,在 nm debuger

模块中单击 Download new! 下载

NM -debuger 下载示意图

Page 66: “ Hello world ”

nm-debuger 的安装步骤 --1 将 NM Debuger 文件夹拷到根目录 /root 下 打开 NM Debuger 中的 glade 文件

点击 glade菜单中的“联编”

保存后退出。

Page 67: “ Hello world ”

nm-debuger 的安装步骤 --2 进入程序主目录

输入命令: cd NM Debuger ./autogen.sh

autogen 命令示意图

Page 68: “ Hello world ”

nm-debuger 的安装步骤 --3 编译

输入命令: make

make 命令示意图

Page 69: “ Hello world ”

nm-debuger 的安装步骤 --4 进入到 src 目录,运行程序

输入命令: cd src ./nm-debuger

nm-debuger 命令及命令结果示意图

Page 70: “ Hello world ”

nm-debuger 的操作—通信连接的建立 首先在本地标识信息域 netmagic ID 中填 1 (不能填入其他值)

然后点击“连接”按钮

Page 71: “ Hello world ”

nm-debuger 的操作 -- 本地寄存器读取 读数据首地址:填写需要读取的寄存器的首地址 读地址数目:连续读取的地址的数目。范围是 1-

366 。 读取操作完成后,会在下面的信息显示栏中显示这些寄存器的值。

Page 72: “ Hello world ”

nm-debuger 的操作 -- 本地寄存器写入 写数据首地址:填写需要写入的寄存器的首地址 写地址数目:连续写入的地址的数目。范围是 1-366 写入数据:连续写入的数据,输入十六进制数据,数

据间以换行隔开。 读取操作完成后,会在下面的信息显示栏中显示这些寄存器的值。

Page 73: “ Hello world ”

实验完成 通过以上的步骤您可以在 Netmagic 中运行一个简单

的发送 ping 报文的小程序。如果您想了解很多关于Netmagic 的信息和实现实例请去我们的网站下载。

网址: http://www.netmagic.org.