[elektro] C ASSERT kezelés

hg12345 hg12345 at freemail.hu
Thu Nov 5 17:00:46 CET 2015


Én is erre gondoltam, de itt még egy RESET-t ami biztos az ziher alapon benne hagynak:

#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 */  


Mindenesetre alaphelyzet bekapcsolva van a HAL esetén, és rossz hatással van a program memória méretére :-)



Lajos Rancz <lajos.rancz at gmail.com> írta:
>Helló!
>
>Szokásos kezelés:
>#ifdef DEBUG
>    #define ASSERT(....)  .....
>#else
>    #define ASSERT(....)
>#endif
>
>Üdv
>
>2015. november 5. 16:36 hg12345 írta, <hg12345 at freemail.hu>:
>
>> Hi,
>>
>> A végleges programban ezt hogy kezelik?
>>
>> fejlesztés alatt kiküldi a listázó kimenetre a hibás sor azonosítóját (
>> __FILE__, __LINE__)
>> ha kikapcsolom (ST környezetben) akkor hibás paraméter esetén (void)0)-t
>> (reset-et) tesz a hiba jelzése helyére.
>>
>> Mivel ez alapjába véve fordítási hiba azonosítására szolgál, nem lehet a a
>> macrot üresen hagyni a végeleges "hiba mentes :-)" programban?
>>
>>
>>
>> -----------------------------------------
>>           elektro[-flame|-etc]
>-----------------------------------------
>          elektro[-flame|-etc]



More information about the Elektro mailing list