PANDORA-enc28j60c的调试(基于RT-Thread)
PANDORA-enc28j60c的调试
- 使用的是RT-Thread的源码中的pandora bsp
说一下我在配置过程中的一些问题,希望可以给其他小伙伴一些启示;
-
首先,
RT-Thread Components → Device Drivers中选中Using SPI Bus/Device device drivers
后会弹出一些选项,选中Enc28j60c的ethernet network interface -
可以开启
RT-Thread Components → Network → Network interface device
,以便后边调试使用 -
通过查阅原理图,该模块使用的是pandora上的wireless位置的引脚,所使用的是spi2,所以要记得在片内外设位置选用spi
-
编译项目后
msh />ifconfig ifconfig: network interface device list error.
-
于是,通过查找 找到这段换在
netdev_list_if
中调用了,由于cur_netdev_list指针是空的所以报错,于是一层层网上找,发现最初的调用者是enc28j60_attach()这个函数,而这个函数本身并没有被使用,于是乎当然是不可能成功的 -
于是,作为小机灵鬼的我,灵机一动在主函数中调用了enc28j60_attach,而函数的参数名想都没想
“spi2”
就上去了;心想这下过了;编译结果那必然是没过,直接就进入rt-mutex-take函数中的断言函数里去了; -
左右想了一会,还以为自己的spi总线开启错了,不是spi2是spi3或者其他的,盯着原理图半天,没毛病啊!在看了一眼代码,确实我注册了spi2但是我没注册spi设备,通过list_device一看只有
spi2 SPI Bus 0 uart1 Character Device 2 pin Miscellaneous Device 0
,于是注册了下,在使用list_device时就:device type ref count
e0 Network Interface 0 spi21 SPI Device 0 spi2 SPI Bus 0 uart1 Character Device 2 pin Miscellaneous Device 0
😏完美 -
于是,我又自信的在msh>后面敲下ifconfig,你们以为这就好了?😅 too young too simple
msh />ifconfig network interface device: e0 (Default) MTU: 1500 MAC: 00 04 a3 12 34 56 FLAGS: UP LINK_DOWN INTERNET_DOWN DHCP_ENABLE ETHARP BROADCAST IGMP ip address: 0.0.0.0 gw address: 0.0.0.0 net mask : 0.0.0.0 dns server #0: 0.0.0.0 dns server #1: 0.0.0.0 msh />list_de list_device msh />list_device device type ref count
e0 Network Interface 0 spi21 SPI Device 0 spi2 SPI Bus 0 uart1 Character Device 2 pin Miscellaneous Device 0 msh />ping 114.114.114.114 ping: not found available network interface device.
结果时这样婶的9.原因是没有把引脚的中断初始给他初始化上
rt_pin_mode,rt_pin_attach_irq,rt_pin_irq_enable
10.这样之后,再次编译
msh />ifconfig network interface device: e0 (Default) MTU: 1500 MAC: 00 04 a3 12 34 56 FLAGS: UP LINK_UP INTERNET_DOWN DHCP_ENABLE ETHARP BROADCAST IGMP ip address: 192.168.12.120 gw address: 192.168.10.1 net mask : 255.255.0.0 dns server #0: 192.168.10.1 dns server #1: 223.5.5.5 msh />ping 114.114.114.114 60 bytes from 114.114.114.114 icmp_seq=0 ttl=71 time=11 ms 60 bytes from 114.114.114.114 icmp_seq=1 ttl=87 time=10 ms 60 bytes from 114.114.114.114 icmp_seq=2 ttl=68 time=11 ms 60 bytes from 114.114.114.114 icmp_seq=3 ttl=91 time=11 ms msh />
奥里给!😄