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