手上有一块ch32v307V-R2-1v1板,使用了CH32V307EVT中的网络例程ETH_MII_RMII,
修改例程中的main.h如下:
//#define USE10BASE_T
#ifndef USE10BASE_T
#define USE_GIGA_MAC
#ifndef USE_GIGA_MAC
#define USE_FAST_MAC
//#define USE_RMII
#endif
#endif
dif打开USE_GIGA_MAC选项。
编译运行,wireshark抓包显示如下:
而实际的代码中定义的MAC地址如下:
/* Transport sample */
uint8_t ARP_package[]=
{
0xff, 0xff, 0xff, 0xff, 0xff, 0xff,/* 目标MAC */
0x8f, 0xc2, 0xe4, 0x01, 0x02, 0x03,/* 源MAC */
0x08,0x06,/* ARP包 */
0x00,0x01,/* 硬件类型 */
0x08,0x00,/* 协议类型 */
0x06,0x04,/* 硬件地址长度和协议地址长度 */
0x00,0x01,/* 情求包 */
0x8f,0xc2,0xe4,0x01,0x02,0x03,/* 源MAC地址 */
0xc0,0xa8,0x1,0x0f,/* 源协议地址 */
0x00,0x00,0x00,0x00,0x00,0x00,/* 目标MAC地址 */
0xc0,0xa8,0x01,0x65,/* 源协议地址 */
可以看到源MAC地址的多个位发生了位反转。
请问这是什么原因。是不是千兆PHY暂时无法测试?(记得FAE在某个帖子里说过建议用100M)
如果使用100M的话(ch32v307V-R2-1v1板上的PHY是RTL8211FS,支持1000M和100M,10M),请问如何配置。