本帖最后由 二十八 于 2016-8-29 21:33 编辑
C6657的以太网学习。“用户也可以使用自有的MAC地址,而不使用TI提供的MAC地址。在这种情况下,用户将自有的MAC地址填入mac_srcAddress,不再调用GE_get_macaddr(mac_srcAddress),同时需要在EMAC_init()函数中,将自有MAC地址加入到接收地址列表,以保证正常收包“(具体文件在附件中)下面是加入MAC地址到接收地址列表的范例代码:/* Setup MAC Address for Channel 0 */
EMAC_REGS->MACINDEX = 0;
EMAC_REGS->MACADDRHI = ((mac_addr1 & 0x00ff0000) << 8)
| ((mac_addr1 & 0xff000000) >> 8)
| ((mac_addr2 & 0x000000ff) << 8)
| ((mac_addr2 & 0x0000ff00) >> 8);
EMAC_REGS->MACADDRLO = CSL_FMK(EMAC_MACADDRLO_VALID, 1)
| CSL_FMK(EMAC_MACADDRLO_MATCHFILT, 1)
| ((mac_addr1 & 0x000000ff) << 8)
| ((mac_addr1 & 0x0000ff00) >> 8);
printf("macaddress: %02X:%02X:%02X:%02X:%02X:%02X\n",
((mac_addr2 & 0x0000ff00) >> 8),
(mac_addr2 & 0x000000ff),
((mac_addr1 & 0xff000000) >> 24),
((mac_addr1 & 0x00ff0000) >> 16),
((mac_addr1 & 0x0000ff00) >> 8),
(mac_addr1 & 0x000000ff));
这个例子看得不是太懂,这里的这些与或运算要表达什么意思,怎样将自有的MAC地址通过改这段代码写入呢?
|