Re: STM32F427 nefukční HAL_Delay()

Tomáš Hamouz konfery.tomas.hamouz na seznam.cz
Pátek Duben 5 15:24:34 CEST 2024


Navážu na weka:
Definice všech interrupt handlerů jako weak symbolů je sice skvělé pro
jednoduché vytváření projektu, ale pokud se nestrefíte přesně se
jménem handleru, bude se volat původní předdefinovaný handler.

Typïcky jsem si natloukl když jsem zapomněl handler deklarovat jako
'extern "C"'  v C++ kódu.

Pomůcka je, pokud Vám debugger ukazuje který kód je funkční. Bohužel
to neskončí tím že nebyl nalezen symbol :-(

Tomáš




>>> ten uwTick ma byt inkrementovany v
>>> nejakom preruseni od casovaca (nemusi to byt SysTick, pokial viem, da sa
>>> nastavit aj niektory timer - nemam CubeMX, toto mam len z citania fora).
>>> Takze skuste najst kus programu, v ktorom sa uwTick inkrementuje. Toto
>>> moze byt iny subor nez ten, co na prvy pohlad vidite; skutocne prerusenia
>>> CubeMX/CubeIDE dava do extra suboru (mozno stm32f4xx_it.c). Dajte si
>>> breakpoint na ten bod a skuste spustit. Ak sa to tam zastavi, tak sa
>>> uwTick inkrementuje a problem je inde. Ak sa to tam nezastavi, tak je
>>> problem v generovani prerusenia; treba sa pozriet na registre zdrojovej
>>> periferie (napr Systick) ze ci bezi a ci tam v zdroji je povolene
>>> prerusenie; a  ak oboje je ano, tu
>>
>>Ano, breakpoint jsem zkoušel, nezastavilo se to...

> Breakpoint kde presne?


>>Tu inkrementaci od časovače taktéž, bohužel taky bez úspěchu.

> Co toto presne znamena? Pozerali ste registre SysTick v debuggeri?


>>SystinckHandler() a v něm se volá HAL_IncTick(), jak píšete v dalším mailu.

> Ak sa ta funkcia naozaj vola SystinckHandler() tak to je problem. Musi sa
> volat presne tak, ako je uvedena v startup kode, s najvacsou
> pravdepodobnostou 
> void SysTick_Handler(void)



> wek


> _______________________________________________
> 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