硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1214|回复: 5
收起左侧

[RL-TCPnet V7.X] 初始化的MAC地址问题

[复制链接]

1

主题

9

回帖

12

积分

新手上路

积分
12
发表于 2022-2-11 12:08:50 | 显示全部楼层 |阅读模式
EMAC_STM32H7xx.c中的初始化代码里,
  1.   static const uint8_t mac_def[6] = { 2, 0, 0, 0, 0, 0 };

  2.   heth.Instance = ETH;
  3.   heth.Init.TxDesc         = DMATxDscrTab;
  4.   heth.Init.RxDesc         = DMARxDscrTab;
  5.   heth.Init.RxBuffLen      = ETH_MAX_PACKET_SIZE;
  6.   heth.Init.MACAddr        = (void *)mac_def;
复制代码
初始化MAC地址为{ 2, 0, 0, 0, 0, 0 }
Net_Config_ETH_0.h中的配置里,MAC地址设置为
  1. #define ETH0_MAC_ADDR           "1E-30-6C-A2-45-5E"
复制代码
代码跑起来后,实际通过电脑查询,MAC地址也是"1E-30-6C-A2-45-5E"。
这里就有个疑问,EMAC_STM32H7xx.c里配置的初始化MAC地址是什么,有什么作用?


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2022-2-11 16:57:26 | 显示全部楼层
被覆盖掉了。
回复

使用道具 举报

1

主题

9

回帖

12

积分

新手上路

积分
12
 楼主| 发表于 2022-2-15 11:45:47 | 显示全部楼层

进仿真运行后,查看heth.Init.MACAddr,他是一个指针,指向的地址是0x080xxxxx,就是flash中的一个固定地址。这个地址里的值就是02000000,并没有覆盖新的MAC地址。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2022-2-15 12:04:19 | 显示全部楼层
smilingfrog 发表于 2022-2-15 11:45
进仿真运行后,查看heth.Init.MACAddr,他是一个指针,指向的地址是0x080xxxxx,就是flash中的一个固定地 ...

这个是因为你这个 static const uint8_t mac_def[6] = { 2, 0, 0, 0, 0, 0 };定义是固定在Flash里面的。

启动后,系统没有再使用这个了。
回复

使用道具 举报

12

主题

176

回帖

212

积分

高级会员

积分
212
发表于 2022-2-15 13:42:40 | 显示全部楼层
eric2013 发表于 2022-2-15 12:04
这个是因为你这个 static const uint8_t mac_def[6] = { 2, 0, 0, 0, 0, 0 };定义是固定在Flash里面的。
...

如果不修改mac地址,两个h7接同一个路由器,就会出现H7互联通讯时,需要很长时间才能获取IP地址,通讯也不稳定。
而每个H7自己设定不同MAC时,就没有这些问题,这应该说明MAC修改成功了吧?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2022-2-16 10:59:19 | 显示全部楼层
gallop020142 发表于 2022-2-15 13:42
如果不修改mac地址,两个h7接同一个路由器,就会出现H7互联通讯时,需要很长时间才能获取IP地址,通讯也 ...

大概率是可以的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-1 20:58 , Processed in 0.297736 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表