ST意法半导体
直播中

王英

7年用户 1330经验值
私信 关注
[问答]

为什么CubeMX V6.5.0生成的ethernetif.h文件中会存在错误呢

CubeMX 版本 6.5.0 在 /LWIP/target/ethernetif.h 中生成以下行:
  • static void ethernetif_input(void const * argument);
以前的版本 6.4.0 生成了这个:
  • void ethernetif_input(void const * argument);
“static”存储类说明符会在包含“ethernetif.h”的任何模块中引起警告。该函数可以声明为静态的,但这最好通过修改 ethernetif.c 文件来完成。以这种方式,完全从 ethernetif.h 中删除声明是可能的,因为它实际上完全是 ethernetif.c 的本地声明。
无论如何,不​​必要的警告都是不可取的。
跟进:
修改 ethernetif_header.ftl ( C:Program  FilesSTMicroelectronicsSTM32CubeSTM32CubeMXdbtemplates) 修复了这个问题。ST--请回顾一下为什么添加“静态”。
6.4.0(好):
  • [#if use_rtos == 1][#-- rtos used --]
  • [#if cmsis_version = "v1"][#-- cmsis_version v1 --]
  • void ethernetif_input(void const * argument);
6.5.0(问题):
  • [#if use_rtos == 1][#-- rtos used --]
  • [#if cmsis_version = "v1"][#-- cmsis_version v1 --]
  • static void ethernetif_input(void const * argument);





回帖(1)

郑静东

2022-12-8 10:09:56
我们这边没有重现这个问题:在项目构建期间没有看到警告。您能否附上发生警告的项目,或者至少准确说明错误行为是用哪个设备重现的。
否则,我假设 ethernetif.c 文件中的更改(将 ethernetif_input 定义为静态函数)已完成以与新的 HAL ETH 驱动程序保持一致。
事实上,回到 STM32H7 固件项目(例如 ProjectsSTM32H743I-EVALApplicationsLwIPLwIP_HTTP_Server_Netconn_RTOSSrcethernetif.c>:
ethernetif_input 被声明为静态函数。
因此,CubeMX 生成的 ethernetif.c 模板被更新以集成 FW 中所做的修改。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分