PANDORA-enc28j60c的调试(基于RT-Thread)

PANDORA-enc28j60c的调试

  • 使用的是RT-Thread的源码中的pandora bsp

说一下我在配置过程中的一些问题,希望可以给其他小伙伴一些启示;

  1. 首先,RT-Thread Components → Device Drivers中选中Using SPI Bus/Device device drivers后会弹出一些选项,选中Enc28j60c的ethernet network interface

  2. 可以开启RT-Thread Components → Network → Network interface device,以便后边调试使用

  3. 通过查阅原理图,该模块使用的是pandora上的wireless位置的引脚,所使用的是spi2,所以要记得在片内外设位置选用spi

  4. 编译项目后

    msh />ifconfig ifconfig: network interface device list error.

  5. 于是,通过查找 找到这段换在netdev_list_if中调用了,由于cur_netdev_list指针是空的所以报错,于是一层层网上找,发现最初的调用者是enc28j60_attach()这个函数,而这个函数本身并没有被使用,于是乎当然是不可能成功的

  6. 于是,作为小机灵鬼的我,灵机一动在主函数中调用了enc28j60_attach,而函数的参数名想都没想“spi2”就上去了;心想这下过了;编译结果那必然是没过,直接就进入rt-mutex-take函数中的断言函数里去了;

  7. 左右想了一会,还以为自己的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 😏完美

  8. 于是,我又自信的在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 />

    奥里给!😄

posted @ 2020-04-11 16:17  T大帅  阅读(726)  评论(2编辑  收藏  举报