为嵌入式linux添加网络功能并用tftp传输文件(以ZYNQ为例)

        在调试V4L2过程中需要用网络传输文件,将添加网络功能的过程记录在此。这里以ZYNQ为例。

        首先需要在VIVADO中勾选以太网如下,

注意这里不要忘记勾选MDIO,需要通过这个接口与PHY芯片进行通信。

        完成了硬件搭建并生成了BIT文件之后,用XILINX SDK生成设备树文件。打开SDK后点击,Xilinx -> Repositories后如下,

 将XILINX提供的设备树包路径添加到上面,然后点击OK。完成后点击File -> New -> Board Support Package如下,

选中device tree,点击Finish。

        生成完设备树文件后,我们重点关注下pcw.dtsi中gem0如下,

&gem0 {
	phy-mode = "rgmii-id";
	status = "okay";
	xlnx,ptp-enet-clock = <0x69f6bcb>;
};

        phy-mode指定了SOC和PHY进行数据交互的接口;status变为了okay,因为我们在VIVADO中激活了网口;xlnx,ptp-enet-clock作用未知,不用管它,不影响使用。

        除此之外,我们还需要在system-top.dts中添加如下内容,

&gem0 {
	phy-handle = <&phy0>;
	local-mac-address = [00 0a 35 00 1e 53];

	phy0:phy@1 {
		device_type = "ethernet-phy";
		reg = <0x1>;
	};

};

local-mac-address是MAC地址;phy-handle是指定与其连接的PHY芯片的设备节点,这个节点就是它的子节点phy0,该节点中device_type用来指定设备类型,固定为"ethernet-phy";reg用来给出PHY芯片的地址,我用的PHY是RTL8211E,其地址为0x1,不同的PHY芯片地址可能不同。这里可能会有一个疑问,在PHY节点中并没有compatible属性,用来指定与其对应的驱动代码,我猜测,可能通过MDIO接口读取PHY芯片中的寄存器就可以知道其型号和厂家,并调用不同的PHY驱动代码。

        完成设备树的编辑后,在内核代码中的xilinx_zynq_defconfig中查看相应的PHY是否勾选上,比如我用的REALTEK公司的PHY,就需要确保如下配置被勾选,

CONFIG_REALTEK_PHY=y

完成后,进行编译,然后运行,可以在开机的打印信息中看到如下内容,

macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 28 (00:0a:35:00:1e:53)
RTL8211E Gigabit Ethernet e000b000.ethernet-ffffffff:01: attached PHY driver [RTL8211E Gigabit Ethernet] 

说明内核通过MDIO接口读出了芯片型号。

开机后可以通过ifconfig配置网络如下,

ifconfig eth0 192.168.10.5 netmask 255.255.255.0

然后用ifconfig -a查看是否配置成功,并可以通过ping看看和电脑是否能通,这里可能需要先关闭防火墙再ping。

        接下来用tftp传输文件,打开tftp64,将current direcrory路径改为与ZYNQ进行通信的目录,也就是说,要发送给ZYNQ的文件需要拷贝到这里,从ZYNQ接收的文件也会存在这里。如果想把文件传给ZYNQ,就在终端输入如下内容,

tftp -g -l b.txt -r a.txt 192.168.10.7

上面的意思是将电脑端的a.txt传给ZYNQ并命名为b.txt,后面跟的是电脑端ip地址。如果想上传文件给电脑端,就在终端输入如下内容,

tftp -p -r b.txt -l a.txt 192.168.10.7

上面的意思是将ZYNQ端的a.txt传给电脑端并命名为b.txt。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值