[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