assert_param

Josef Štengl ok1ced na nagano.cz
Sobota Duben 2 10:07:30 CEST 2016


Podíval bych se do výpisu preprocesoru, jestli se skutečně soubor stm32f30x_conf.h #includuje a jestli a na co se rozvíjí 
makro assert_param. Jinak Vám asi nikdo víc bohužel neporadí.

Pro uchování výsledků podprocesů je parametr -save-temps ale nejsem si jist, protože gcc nepoužívám často.


Dne 1.4.2016 v 22:14 HUDA napsal(a):
> Dobrý den,
> normálně programuji STM32F0xx v prostředí EmBitz.
> Nepoužívám standardní knihovny, ani HAL.
> Na netu jsem našel aplikaci "AHRS-master.zip",
> kterou se snažím přeložit a mám problém.
>
> Překladač hlásí několik varování, viz příklad níže
> pro různé soubory ze standardní knihovny.
> Compiling: ..\..\..\STM_Lib\STM32F3xx\src\stm32f30x_gpio.c
> ..\..\..\STM_Lib\STM32F3xx\src\stm32f30x_exti.c: In function 'EXTI_Init':
> ..\..\..\STM_Lib\STM32F3xx\src\stm32f30x_exti.c:159:3: warning: implicit declaration of function 'assert_param'
> [-Wimplicit-function-declaration]
>
>     assert_param(IS_EXTI_MODE(EXTI_InitStruct->EXTI_Mode));
>
> A potom chyby pro knihovni soubory vi příklad níže.
> Linking executable: bin\Debug\AHRSMaster.elf
> Creating Hex-file.
> obj\debug\~#\~#\~#\stm_lib\stm32f3xx\src\stm32f30x_exti.o: In function `EXTI_Init':
> ..\..\..\STM_Lib\STM32F3xx\src/stm32f30x_exti.c:159: undefined reference to `assert_param'
>
> Přitom v souboru "stm32f30x_conf.h" je nadefinováno makro:
> /* Exported macro ------------------------------------------------------------*/
> #ifdef  USE_FULL_ASSERT
> /**
>    * @brief  The assert_param macro is used for function's parameters check.
>    * @param  expr: If expr is false, it calls assert_failed function which reports
>    *         the name of the source file and the source line number of the call
>    *         that failed. If expr is true, it returns no value.
>    * @retval None
>    */
>    #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
> /* Exported functions ------------------------------------------------------- */
>    void assert_failed(uint8_t* file, uint32_t line);
> #else
>    #define assert_param(expr) ((void)0)
> #endif /* USE_FULL_ASSERT */
>
> Soubor "stm32f30x_conf.h" se inkluduje.
>
> Díky za rady.
> HUDA
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list