I2C - Arduino STM32 Nucleo L476RG

Jan Waclawek konfera na efton.sk
Úterý Prosinec 11 10:48:14 CET 2018


No dobre, a mozete prosim vysvetlit ten jav co pozoruje pan kolega Jirka
Mww?

Preco sa nezachova obsah premennej savedTime pri resete?

wek


----- Original Message ---------------
>Pokud pouziva stm32duino tak je to nadstavba nad HALem od ST. A kod je zcela otevreny. Startovaci kod je standartni od ST. Je tedy uplne jedno jestli pouzije arduino, hal nebo ll pokud nezna arm a stm32. Tyhle hrabeci rady vychazeji z cire neznalosti. 
>
>T
>
>10. 12. 2018 v 19:53, Jaroslav Buchta <jaroslav.buchta at hascomp.cz>:
>
>> Nevim, jak to dela arduino ale standardni startovaci kod data v sekci BSS nuluje, heap zustava nepovsimnut ale tezko asi alokujete stejny blok... Hardwarove by snad reset nemel mit na obsah RAM vliv (az asi na oblasti ktere pouziva pevny bootloader)
>> Cistym resenim by IMHO bylo pouzit externi USB/VCP prevodnik na jiny UART a programovadlo nechat na programovani. A nejlip zahodit arduino a mit program pod kontrolou.
>> 
>> 
>> Dne 10.12.2018 v 19:22 Jirka Mww napsal(a):
>>> Vypadek napajeni urcite nenastal, staci stisknout tlacitko reset na desce a data se prepisou.
>>> Je to ale asi opravdu arduinem, hodnota je porad stejna . Prestoze je promenna definovana
>>> jako word tak hodnota vypsana po resetu je asi 10x vyssi. Alespon predpokladam, ze word je
>>> porad jeste 16bitu bez znamenka.
>>> Dnes uz se k tomu nedostanu, zitra budu pokracovat. Podstatne je ale, ze po odstraneni
>>> propojek ST linku to uz neresetuje, tak mi to zatim staci.
>>> 
>>> po 10. 12. 2018 v 18:33 odesílatel Miroslav Mraz <mrazik at volny.cz> napsal:
>>>> No jo, po připojení napájení jsou v RAM náhodná data. Je to trochu 
>>>> složitější, musíte identifikovat zdroj přerušení - asi i v této řadě 
>>>> bude něco jako RCC_CSR registr, ve kterém jsou flagy zdroje přerušení. 
>>>> Na začátku musíte identifikovat připojení napájení - něco jako BOR a 
>>>> pokud je nastaven, příslušnou proměnnou nastavit na potřebnou hodnotu 
>>>> (asi vynulovat). Pokud je zdroj přerušení jiný, neděláte nic. Tedy nic - 
>>>> patrně bude nutné flagy vždy nulovat. Bývá na to speciální bit RMVF. 
>>>> Není to žádná magie.
>>>> 
>>>> Mrazík
>>>> 
>>>> Dne 10. 12. 18 v 18:14 Jirka Mww napsal(a):
>>>> > Zkusil jsem to  SW řešení
>>>> > unsigned long   savedTime __attribute__ ((section (".noinit")));
>>>> > , proměnná se sice neinicializuje na nulu, , ale ani se nezachová obsah  
>>>> > před resetem, jsou tam nesmysly ,  takže budu pokračovat zítra.
>>>> > Zatím díky za pomoc, hodně jsem se dnes naučil.
>>>> > 
>>>> > Zdravi
>>>> > Jirka Sloupenský  OK1MWW



Další informace o konferenci Hw-list