Contradictory Warnings.
My application has an automatic gain control that needs to be able to change the SDADC gain on the fly. Gain change can only be done when the SDADC is in init mode. To get the SDADC in init mode, and exit from it, there are these HAL functions:
SDADC_EnterInitMode() SDADC_ExitInitMode()
Which are in file stm32f3xx_hal_sdadc.c. Unfortunately these are private functions so they are missing from file stm32f3xx_hal_sdadc.h. I cannot access them. So I copied these functions, and the macros they use, into a file I added to the project. I append the characters “_pub” to their names so they can be differentiated from the STM32CubeMX generated functions.
When I build this I get these seemingly contradictory warnings:
Description Resource Path Location Type 'SDADC_EnterInitMode_pub' declared 'static' but never defined [-Wunused-function] stm32f3xx_hal_pub.h /TEC Driver SW4STM32 Configuration/TEC/Inc line 13 C/C++ Problem 'SDADC_EnterInitMode_pub' defined but not used [-Wunused-function] stm32f3xx_hal_pub.c /TEC Driver SW4STM32 Configuration/TEC/Src line 35 C/C++ Problem 'SDADC_EnterInitMode_pub' used but never defined stm32f3xx_hal_pub.h /TEC Driver SW4STM32 Configuration/TEC/Inc line 13 C/C++ Problem 'SDADC_ExitInitMode_pub' declared 'static' but never defined [-Wunused-function] stm32f3xx_hal_pub.h /TEC Driver SW4STM32 Configuration/TEC/Inc line 14 C/C++ Problem 'SDADC_ExitInitMode_pub' defined but not used [-Wunused-function] stm32f3xx_hal_pub.c /TEC Driver SW4STM32 Configuration/TEC/Src line 61 C/C++ Problem 'SDADC_ExitInitMode_pub' used but never defined stm32f3xx_hal_pub.h /TEC Driver SW4STM32 Configuration/TEC/Inc line 14 C/C++ Problem
The first warning shows that SDADC_EnterInitMode_pub() is declared but never defined. But the next warning shows it is defined but not used. And finally the line after that shows it used but never defined. The lines that follow shows it to be all the same for SDADC_ExitInitMode_pub.
What could account for these contradictions? What has gone wrong here?
The processor is an STM32F373.
The files I created to add these functions to the project are attached.