目前用的是NIOS II+LAN91C111 通过几天的学习,基本上弄清楚了LWIP底层网络芯片的初始化,初始化的主要代码在netif_add函数中, netif_add起到了一个衔接顶层协议和底层驱动的作用 netif_add调用low_level_init初始化硬件,前几天主要是phy_config失败,然后找到了在AUTO NEGOTIATION时老是TIME OUT ,开始怀疑是硬件的问题,找了很多个版本的原理图,得出的结论是引脚的配置是正确的。在AUTO NEGOTIATION用示波器量tpi tpo 各个引脚也没有波形。最后只能怀疑是连接LAN91C111和交换机的网线有问题,于是去查关于网线的定义,得知RJ45接口的1、2、3、6脚O+ O- I+ I-,究竟那一个是RJ45的一脚,对于RJ45的插座口,将引脚向上放置,从左往右,依次是1-8。再去查网线,果真是接错了。于是更改,最后虽然初始化OK了,但是PC机PINGLAN91C111却始终PING不通。
TO BE CONTINUE
今天发现为什么一直以来PING不通了,我的set_ip_addr是在main函数所在的文件中定义的,所以在//C:/altera/71/nios2eds/components/altera_lwip/UCOSII/src/alt_lwip_dev.c
文件中调用get_ip_addr编译时找不到这个函数,但是NIOSII IDE从来没有报过错。同样
//C:/altera/71/ip/sopc_builder_ip/altera_avalon_lan91c111/UCOSII/src、altera_avalon_lan91c111.c调用get_mac_addr连接器也找不到这个函数。发现NIOSII IDE做的实在是太差