Fwd: STM CUBE - zkusenosti
Jan Waclawek
konfera na efton.sk
Neděle Říjen 4 19:19:09 CEST 2015
Nemate pravdu, pan kolega.
Aby som bol konkretny, tak napr. pre STM32F4xx je v stm32f4xx.h
typedef struct
{
__IO uint32_t ACR; /*!< FLASH access control register, Address
offset: 0x00 */
__IO uint32_t KEYR; /*!< FLASH key register, Address
offset: 0x04 */
__IO uint32_t OPTKEYR; /*!< FLASH option key register, Address
offset: 0x08 */
__IO uint32_t SR; /*!< FLASH status register, Address
offset: 0x0C */
__IO uint32_t CR; /*!< FLASH control register, Address
offset: 0x10 */
__IO uint32_t OPTCR; /*!< FLASH option control register , Address
offset: 0x14 */
__IO uint32_t OPTCR1; /*!< FLASH option control register 1, Address
offset: 0x18 */
} FLASH_TypeDef;
__IO je predpisane priamo ARMom, nachadza sa (pre tento pripad) v
core_cm4.h ktory je do stm32f4xx.h includnuty, a je definovany ako
#define __IO volatile /*!< Defines 'read / write'
permissions */
wek
>Aby to bylo konkretni, tak napr toto je ve vsech knihovnach STM
>
>// BUG
>//#define FLASH ((FLASH_TypeDef *) FLASH_R_BASE)
>#define FLASH ((FLASH_TypeDef volatile *) FLASH_R_BASE)
>
>Pokud se na tu periferii odkazete v kodu, budete cekat v cyklu, tak se nedockate (nema volatile). Je to odkaz do pameti a ten compiler precte jen jednou. Podobne na to narazi i jini, ale nevi proc jim to nejde.
>
>Jirka
>
>
>Dne 4. 10. 2015 v 10:16 Jiøí Nesvaèil napsal(a):
>> Kdyz vyvojari STM se nenaucili klicove slovo volatile. Pote ty knihovny s ruznou optimalizaci prekladu, ci ruznou verzi GCC chodi za roh. Je to bohuzel ve vsech knihovnach. Pokud Vam neco nejde, tak musite napsat sami.
>> Napriklad zapis do FLASH, sice je v include precastovani, ale to nema priznak volatile. Protoze odkazy na porty jsou jako odkazy do pameti, tak to optimalizator vezme a i pres funkce v jednom *.c souboru zoptimalizuje na jedno cteni a cekani
>> nechodi. Bohuzel to je vsude. V CUBE se to snazili predelat definici _IO, ale to moc nepomohlo, staci volatile.
>>
>> Jirka
>>
>>
>> Dne 3. 10. 2015 v 1:03 Jan Waclawek napsal(a):
>>>> Jdu spat a zitra nevim jestli to spis zahodim a vratim se k SPL nebo
>>>> jeste neco zkusim...
>>> Cesta spat je nemozna, musite prejst na LL :-)
>>> http://www.mikrozone.sk/news.php?extend.1042.4
Další informace o konferenci Hw-list