RE: Programování STM32 - přerušení

cizek.milan na seznam.cz cizek.milan na seznam.cz
Čtvrtek Říjen 3 08:04:48 CEST 2019


Aha zajímavé, ten __weak neznám. Do zdrojáků níže lezu poměrně často (přes CTRL).

Takže pokud někde níže je nějaká metoda s prefixem __weak, tak pokud udělám stejnou deklaraci v main.c, tak se použije ta jako override?

To je celkem pěkné, takže teoreticky můžu měnit kód jen v main.c popř. zde jen volat metody z nějakého svého .h/.c a nikde jinde už moc přepisovat nemusím?

Ještě si to dohledám. :-) Děkuji.

M.

 

 

From: Hw-list <hw-list-bounces na list.hw.cz> On Behalf Of Jaroslav Buchta
Sent: Thursday, October 3, 2019 4:17 AM
To: hw-list na list.hw.cz
Subject: Re: Programování STM32 - přerušení

 

Funguje to tak, ze ty callback funkce jsou v HAL knihovnach definovany jako weak a nic nedelaji - takto treba

 

__weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
  /* Prevent unused argument(s) compilation warning */
  UNUSED(GPIO_Pin);

  /* NOTE: This function should not be modified, when the callback is needed,
           the HAL_GPIO_EXTI_Callback could be implemented in the user file
   */
}

 

Pokud si nadefinujete svoji callback funkci, tak linker pouzije prednostne tu uzivatelskou.

Je dobre se na tyto featury podivat do zdrojaku knihoven, hledanim v souborech se da ve zdrojacich celkem rychle zorientovat.

A je to jak pisete, o flagy se postara HAL, je dobre si zprovoznit to ladeni a ty obsluhy preruseni si treba prokrokovat, je pak vsechno jasnejsi.

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20191003/8c88af33/attachment.html>


Další informace o konferenci Hw-list