Chyby v IDE atd Re: STM32F427 nefukční HAL_Delay()
Pavel Hudeček
edizon na seznam.cz
Pátek Duben 5 17:16:14 CEST 2024
Je dobré dávat pozor na periferie, které nejsou vyvedené na kitech:-)
Na ty prostě občas zapomenou.
Stalo se mi to u nějakého LPC, všechno fungovalo, až na nějakou banální
věc s GPIO. Ukázalo se, že na část signálů autor knihovny zapomněl. A od
nezapomenutých se lišily tím, že nebyly vyvedené na kitu. A to pak
jednak asi jinak netestují a taky dost lidí, pokud může, používá to co
se dá zkusit na kitu.
Jinak teda ty knihovny k LPC se mi líběj mnohem víc než HAL k STM.
Taky jeden čas byla chyba ve wizardu v codevisionu, po zaškrtnutí
nějakého přerušení se generovalo jiné. To pak taky dělá psí kusy:-)
PH
Dne 05.04.2024 v 14:43 Miroslav Mraz napsal(a):
> Já jsem k tomu klikacímu CUBE také velmi skeptický. Důvod je ten, že
> před léty když jsem se učil javu, napadlo mě napsat si klikací nástroj
> pro nastavení periferií 8051. Zdálo by se, že je to sranda, ale
> ukázalo se, že jsou v tom závislosti, které nejsou na první pohled
> patrné. Takže když změníte jediný bit, musí to probublat do mnohých
> funkcí a odtud zase dále...
> A to je 8051, která má těch periferií pár. A teď si představte, že to
> musíte na řádově složitějším čipu a ještě ke všemu pro pár stovek
> různých čipů. Nevěřím, že to může postihovat _všechny_ závislosti. A
> protože to generuje spoustu zbytečného kódu navíc, blbě se v tom bude
> hledat chyba.
> Ale jak píšete - běžné věci fungují, takže nějaký význam to mít může.
> Zase na druhou stranu ty "běžné věci" nebývá problém udělat i přímým
> zápisem do registrů. Prostě jak to komu vyhovuje.
>
> Mrazík
>
> On 05. 04. 24 13:59, Jaroslav Buchta wrote:
>> Je to divné, nikdy jsem u žádného STM32 neměl takový problém. Zkuste
>> třeba znova vygenerovat nový projekt. Systick časovač se tuším
>> nastavuje a přerušení povoluje někde při nastavení hodin, je na to v
>> main modulu vygenerovana funkce, tak mozna prokrokovat i tu, jestli
>> nekde neco neselze (kontroluji se tam oscilatory atp.)
>> Jeste jde myslim nastavit misto časovače v jadru některý std.
>> periferní časovač ale to asi nebude nic řešit.
>>
>> Používat HAL ja naopak považuju za dobrý nápad, pokud se nechce něco
>> naprosto speciálního, běžné požadavky programátora uspokojí, kód je
>> snadno přenosný a udržitelný. Funkce běžných periferií není ani
>> potřeba zkoumat, třeba UART funguje všude tak nějak stejně.
Další informace o konferenci Hw-list