【海思篇】【Hi3516DV300】五、linux有线网口调试

目的:熟悉uboot下有线网口;让更多的爱好者了解海思、加入海思。

目录

1 配置linux kernel的设备树

1)修改dts上的phyaddr配置

2)打开HIETH_GMAC

2 开启DHCP Client支持

1)打开busybox的udhcpc

2)配置udhcpc的默认脚本

3 测试


1 配置linux kernel的设备树

1)修改dts上的phyaddr配置

(我的是0,hi3516dv300默认是1)

cd Hi3516CV500_SDK_V2.0.1.1/osdrv/opensource/kernel/linux-4.9.y-smp/arch/arm/boot/dts

vi hi3516dv300-demb.dts

&mdio0 {
        hisilicon,phy-reset-delays-us = <10000 20000 150000>;
#if 0
        phy0: ethernet-phy@1 {
                reg = <1>;
        };
#else
        phy0: ethernet-phy@0 {
                reg = <0>;
        };
#endif
};

注意:如果改好了,编译后并不会生效,因为重新make后会从linux压缩包中解压覆盖了上面被修改的配置,所以我的解决办法是将linux-4.9.y-smp/arch/arm/boot/dts目录下自己配置好后的hi3516dv300-demb.dts文件保存到Hi3516CV500_SDK_V2.0.1.1/osdrv/opensource/kernel下,文件名称不变;然后修改osdrv下Makefile,如HIETH_GMAC中的Makefile(不重复贴了)。

2)打开HIETH_GMAC

cd Hi3516CV500_SDK_V2.0.1.1/osdrv/opensource/kernel/linux-4.9.y-smp

make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig

注意:如果改好了,编译后并不会生效,因为重新make后会从linux压缩包中解压覆盖了上面被修改的配置,所以我的解决办法是将linux-4.9.y-smp目录下自己配置好后的.config文件保存到Hi3516CV500_SDK_V2.0.1.1/osdrv/opensource/kernel下,重命名为hi3516dv300_smp_defconfig;然后修改osdrv下Makefile,如下

##########################################################################################
#task [2]       build kernel
##########################################################################################
hikernel: prepare check_kernel
        @echo "---------task [2] build kernel"
        rm $(OSDRV_DIR)/opensource/kernel/$(KERNEL_VER) -rf
        tar xf $(PACKAGE) -C $(OSDRV_DIR)/opensource/kernel/
        mv $(OSDRV_DIR)/opensource/kernel/$(KERNEL_FULL_VER) $(OSDRV_DIR)/opensource/kernel/$(KERNEL_VER)
        pushd $(OSDRV_DIR)/opensource/kernel/$(KERNEL_VER);patch -p1 < ../$(KERNEL_PATCH);popd
        find $(OSDRV_DIR)/opensource/kernel/$(KERNEL_VER) | xargs touch
# add by wei
        cp $(OSDRV_DIR)/opensource/kernel/$(KERNEL_CFG) $(OSDRV_DIR)/opensource/kernel/$(KERNEL_VER)/arch/arm/configs/$(KERNEL_CFG)
        cp $(OSDRV_DIR)/opensource/kernel/hi3516dv300-demb.dts $(OSDRV_DIR)/opensource/kernel/$(KERNEL_VER)/arch/arm/boot/dts/hi3516dv300-demb.dts
# add by wei end
        make -C $(OSDRV_DIR)/opensource/kernel/$(KERNEL_VER) ARCH=arm CROSS_COMPILE=$(OSDRV_CROSS)- $(KERNEL_CFG)

        pushd $(OSDRV_DIR)/opensource/kernel/$(KERNEL_VER);\
                make ARCH=arm CROSS_COMPILE=$(OSDRV_CROSS)- uImage -j 20 >/dev/null;popd
        cp $(OSDRV_DIR)/opensource/kernel/$(KERNEL_VER)/arch/arm/boot/uImage $(OSDRV_DIR)/pub/$(PUB_IMAGE)/$(UIMAGE)

hikernel_clean:
        rm $(OSDRV_DIR)/opensource/kernel/$(KERNEL_VER) -rf

2 开启DHCP Client支持

1)打开busybox的udhcpc

cd Hi3516CV500_SDK_V2.0.1.1/osdrv/opensource/busybox/busybox-1.26.2

make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig

注意:如果改好了,编译后并不会生效,因为重新make后会从uboot.tgz压缩包中解压覆盖了上面被修改的配置,所以我的解决办法是将busybox-1.26.2目录下自己配置好后的.config文件保存到Hi3516CV500_SDK_V2.0.1.1/osdrv/opensource/busybox下,重命名为config_v200_a7_softfp_neon;然后修改osdrv下Makefile,如下

##########################################################################################
#task [4]       build busybox
##########################################################################################
hibusybox: prepare
        @echo "---------task [4] build busybox "
        rm $(OSDRV_DIR)/opensource/busybox/$(BUSYBOX_VER) -rf
        tar xzf $(OSDRV_DIR)/opensource/busybox/$(BUSYBOX_VER).tgz -C $(OSDRV_DIR)/opensource/busybox
        find $(OSDRV_DIR)/opensource/busybox/$(BUSYBOX_VER) | xargs touch
        cp $(OSDRV_DIR)/opensource/busybox/$(BUSYBOX_VER)/$(BUSYBOX_CFG) \
                $(OSDRV_DIR)/opensource/busybox/$(BUSYBOX_VER)/.config
#add by wei
        cp $(OSDRV_DIR)/opensource/busybox/$(BUSYBOX_CFG) \
                $(OSDRV_DIR)/opensource/busybox/$(BUSYBOX_VER)/.config
#add by wei end
        pushd $(OSDRV_DIR)/opensource/busybox/$(BUSYBOX_VER)/;make -j 20 >/dev/null;popd
        make -C $(OSDRV_DIR)/opensource/busybox/$(BUSYBOX_VER) install
        cp -af $(OSDRV_DIR)/opensource/busybox/$(BUSYBOX_VER)/_install/* $(OSDRV_DIR)/pub/$(PUB_ROOTFS)

2)配置udhcpc的默认脚本

cd Hi3516CV500_SDK_V2.0.1.1/osdrv
vi rootfs_priv/usr/share/udhcpc/default.script

#!/bin/sh

# udhcpc script edited by Tim Riker <Tim@Rikers.org>

[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1

RESOLV_CONF="/tmp/resolv.conf"
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"

case "$1" in
	deconfig)
		/sbin/ifconfig $interface 0.0.0.0
		;;

	renew|bound)
		/sbin/ifconfig $interface $ip $BROADCAST $NETMASK

		if [ -n "$router" ] ; then
			echo "deleting routers"
			while route del default gw 0.0.0.0 dev $interface ; do
				:
			done

			for i in $router ; do
				route add default gw $i dev $interface
			done
		fi

		echo -n > $RESOLV_CONF
		[ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
		for i in $dns ; do
			echo adding dns $i
			echo nameserver $i >> $RESOLV_CONF
		done
		;;
esac

exit 0

chmod 750 rootfs_priv/usr/share/udhcpc/default.script

3 测试

插上网线接电进入linux系统。ping验证通过。

ifconfig eth0 up
udhcpc -i eth0 -b

ping 8.8.8.8

 

 

 

 

 

 

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
海思hi3516dv300硬件设计用户指南是一本针对海思公司推出的hi3516dv300芯片的硬件设计的指导手册。该手册的目的是帮助用户了解hi3516dv300芯片的硬件设计要求和规范,并提供相关的设计指导和建议。 hi3516dv300芯片是一款高性能、低功耗的视频处理芯片,主要应用于视频监控、智能交通和安防等领域。硬件设计是确保芯片正常工作和发挥最佳性能的基础,因此对于使用hi3516dv300芯片的设计人员来说,掌握硬件设计指南是非常重要的。 在这本指南中,首先介绍了hi3516dv300芯片的主要特性和功能,包括处理能力、视频编解码、音频处理等。然后详细讲解了芯片的外部接口和引脚分配,包括视频输入、输出接口、音频接口、以太网接口等。同时,还对时钟、电源、存储器和外设等方面的设计进行了说明和建议。 此外,指南中还提供了关于PCB设计的一些建议,包括地域分布、信号电源分离、阻抗匹配、电磁兼容性等方面,帮助设计人员提高设计质量和可靠性。 总之,海思hi3516dv300硬件设计用户指南是一本重要的参考资料,它提供了关于hi3516dv300芯片硬件设计方面的详尽说明和建议,对于希望使用该芯片进行设计的用户来说是不可或缺的。通过认真阅读和遵循指南中的规范和要求,设计人员可以更好地实现hi3516dv300芯片的应用,提高产品的性能和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值